我将表映射到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" />
答案 0 :(得分:1)
SQL Server implicitly converts VARCHAR
到NVARCHAR
(反之亦然)。 IOW,如果你传递VARCHAR
预期NVARCHAR
,它会自动在内部进行转换,而不会告诉你(或者至少没有以明显的方式告诉你)。
我仍然建议您在EF和数据库之间使数据类型匹配,这样您就不会执行可能代价高昂的隐式转换,或者在尝试转换不兼容的数据/类型时遇到错误。