EF db首先是Edmx数据库类型nvarchar vs varchar

时间:2017-07-02 11:07:33

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

我将表映射到EF,最初有一个varcahr列,我在SQL服务器上将其更改为nvarchar,在更改它之前我测试了应用程序,一切似乎都没问题。 现在不确定我理解为什么它有用,为什么我不需要将Edmx从varchar更改为nvarchar。

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

而不是

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

1 个答案:

答案 0 :(得分:1)

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

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