2
我想獲得我首先使用EF代碼定義的列的最大長度。我需要確保插入的值不超過最大長度:EF代碼首先訪問HasMaxLength值
this.Property(t => t.COMPANY_ID)
.HasMaxLength(30);
有什麼建議嗎?
我想獲得我首先使用EF代碼定義的列的最大長度。我需要確保插入的值不超過最大長度:EF代碼首先訪問HasMaxLength值
this.Property(t => t.COMPANY_ID)
.HasMaxLength(30);
有什麼建議嗎?
我明白你的問題的方式,你的真正需要似乎是要確保一個實體的屬性(在這種情況下是COMPANY_ID)不超過一定的最大長度(在本例中爲30)。
而不是像那樣進行手動檢查,您可以考慮使用數據註釋(System.ComponentModel.DataAnnotations和System.ComponentModel.DataAnnotations.Schema),特別是因爲您首先使用代碼。類似這樣的:
public class MyEntity
{
[MaxLength(30)]
public string MyProperty {get; set;}
[Column(TypeName="Date")]
public DateTime MyDate {get; set;}
}
您可以設置不止是最大長度。正如你在上面看到的,你可以指定什麼數據類型應該反映在你的數據庫中。您還可以指定是否需要屬性以及更多屬性。 EF將自動爲您處理此問題,如果您的實體不符合數據註釋設置的標準,將爲您提出例外。如果您使用MVC腳手架,它也可以自動生成驗證,並與您爲實體指定的註釋保持一致。
如果您使用的是.NET Framework 4.3或更新的內置驗證,應該爲您驗證並在違規情況下拋出異常。這不適合你嗎? – Pawel