【问题标题】:EF db first Edmx database types nvarchar vs varcharEF db first Edmx 数据库类型 nvarchar vs varchar
【发布时间】:2017-07-02 20:30:50
【问题描述】:

我有一个映射到 EF 的表,该表最初有一个 varcahr 列,我在 SQL Server 上将其更改为 nvarchar,然后在 EF 上更改它之前,我测试了应用程序,一切似乎都很好。 现在不确定我是否理解它为什么起作用以及为什么我不需要将 Edmx 从 varchar 更改为 nvarchar。

<Property Name="CustomerFirstName" Type="varchar" MaxLength="100" Nullable="false" />

而不是

<Property Name="CustomerFirstName" Type="nvarchar" MaxLength="100" Nullable="false" />

【问题讨论】:

    标签: c# sql-server entity-framework-6


    【解决方案1】:

    SQL Server implicitly converts VARCHAR 转换为 NVARCHAR(反之亦然)。 IOW,如果您在预期 NVARCHAR 的地方传入 VARCHAR,它会自动在内部进行转换,而不会告诉您(或至少不会以明显的方式告诉您)。

    我仍然建议您使 EF 和数据库之间的数据类型匹配,这样您就不会执行可能成本高昂的隐式转换,或者在尝试转换不兼容的数据/类型时遇到错误。

    【讨论】:

    • 好的,那 ef read 是不是也在 .Net 上做转换?
    猜你喜欢
    • 2011-07-03
    • 1970-01-01
    • 2022-12-14
    • 2021-03-17
    • 1970-01-01
    • 1970-01-01
    • 2011-11-03
    • 2015-04-24
    • 1970-01-01
    相关资源
    最近更新 更多