簡體   English   中英

為什么 EF Core 3.1 StringLength 屬性加倍 SQL 列長度

[英]Why EF Core 3.1 StringLength Attribute doubles SQL column length

我正在使用 EF core 3.1 代碼優先方法。 當我為數據 model 參數指定[StringLength(51)]時,等效的 SQL 列長度被指定為nvarchar(102) 為什么會翻倍? 我應該怎么做才能在 SQL 列中獲得相同的最大長度?

注意:MS SQL 服務器是我的后端。

我認為你可以使用

[MaxLength(51)] // nvarchar(51)
public string Email{ get; set; }

感謝@Igor 的評論。 我的錯,它在 SQL 中也有相同的長度。 加倍是以字節為單位的大小,對於每個字符來說,它是兩個字節。 以下查詢有助於理解它,因此將其發布為有助於像我這樣的人的答案。

select COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH       
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME='Table_Name'```

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM