1

我正在尝试更新实体的属性,而不是先从数据库中获取实体。

问题是我只想更新一些属性,而实体验证器抱怨说即使我没有更新那些不可为空的值也没有被填充。

我唯一的选择是关闭验证器吗?

我不想打开验证器,因为我想验证我正在更新的属性。

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();
4

1 回答 1

2

那是“一个特点”。您必须关闭全局验证并分别验证每个更改的属性。

var result = entry.Property(e => e.Title).GetValidationResult();

我也不明白为什么这不是开箱即用的。

于 2012-05-03T13:21:39.843 回答