通常我可以指定.HasMaxLength(null),這將導致最大長度 ( nvarchar(MAX))的字串列。
我認為實際上這實際上是默認值,如果您不指定長度,那么您將得到nvarchar(MAX).
但是,可以使用如下代碼設定默認值:
DbModelBuilder.Properties<string>().Configure(config => config.HasMaxLength(50));
這將導致所有字串列默認具有nvarchar(50)(最大長度為 50)。
但是,這似乎阻止.HasMaxLength(null)了作業,我不能再選擇最大長度。我也試過說.HasMaxLength(null).HasColumnType("nvarchar(MAX)")這適用于在資料庫級別生成正確的列,但后來我發現當我的長度超過 50 個字符時,EF 仍然拋出例外。
有沒有辦法解決這個問題,或者我是否必須通過并手動將大多數字串列設定回.HasMaxLength(50)并忘記具有不同于的默認長度nvarchar(MAX)?
uj5u.com熱心網友回復:
我發現這里的解決方案是使用該.IsMaxLength()方法。
.IsMaxLength()我猜是默認值,并說“使用最大長度”(nvarchar(MAX))。
.HasMaxLength(null)不是說使用最大長度,而是說使用默認長度,默認默認長度就是最大長度(呼叫.IsMaxLength()which的結果是nvarchar(MAX))。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/372606.html
