1
當我有這個簡單的模型:驗證錯誤與外鍵
public class User
{
// Primary key
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid UserId { get; set; }
[Required]
public Int32 FailedPasswordAttemptCount { get; set; }
[Required]
public Language Language { get; set; }
}
public class Language
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid LanguageId { get; set; }
[MaxLength(30)]
public String LocaleName { get; set; }
}
而且我這樣做代碼:
var user = context.Users.Single(u => u.UserId == userId);
user.FailedPasswordAttemptCount++;
context.SaveChanges();
它會拋出一個DbEntityValidationException
expception The Language field is required.
。
從技術上講,這是真實的,因爲屬性被標記爲需要,並且因爲從數據庫中提取時(012,)屬性爲空(無延遲或加載)。
但是我怎麼改變這種行爲?
- 我不想禁用驗證完全
- 我不想懶惰/貪婪加載領域
- 我不想從模型中取出所需的變量
什麼其他選擇了嗎?
謝謝我爲用戶類添加了一個'Guid''LanguageId',我沒有做出必要的工作。 – YesMan85