我正在尝试更新实体的属性,而不首先从数据库中获取实体。
问题是我只希望更新一些属性,并且实体验证器抱怨即使我没有更新那些,也不会填充非可空值。
我是唯一可以选择验证器吗?
我宁愿不转动验证器,因为我想验证我正在更新的属性。
TestContext context = new TestContext();
LearningResource learningResource = new LearningResource();
learningResource.LearningResourceID = 132;
DbEntityEntry<LearningResource> entry = context.Entry(learningResource);
context.LearningResources.Attach(learningResource);
entry.State = EntityState.Unchanged;
learningResource.Title = "alex";
entry.Property(e => e.Title).IsModified = true;
//Only seems to work if I do this.
//context.Configuration.ValidateOnSaveEnabled = false;
context.SaveChanges();
答案 0 :(得分:2)
那是"a feature"。您必须关闭全局验证并分别验证每个已更改的属性。
var result = entry.Property(e => e.Title).GetValidationResult();
我也不明白为什么这不是开箱即用的。