2017-07-02 56 views
0

我有表映射到EF,最初有一個varcahr列,我改變它在SQL服務器nvarchar,並在EF上更改之前我測試了應用程序,一切似乎確定。 現在不知道我明白了它爲什麼起作用,爲什麼我不需要將Edmx從varchar更改爲nvarchar。EF數據庫第一Edmx數據庫類型nvarchar vs varchar

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

,而不是

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

回答

1

SQL服務器implicitly convertsVARCHARNVARCHAR(反之亦然)。 IOW,如果您通過VARCHAR而期待NVARCHAR,它會自動在內部進行轉換,而不會告訴您(或者至少沒有以明顯的方式告訴您)。

我仍然建議您使EF和數據庫之間的數據類型匹配,以便在嘗試轉換不兼容的數據/類型時不執行潛在的代價高昂的隱式轉換,或者遇到錯誤。

+0

好吧,如果讀過,它是否也在.NET上進行轉換? –

相關問題