1

最初にデータベースからエンティティを取得せずに、エンティティのプロパティを更新しようとしています。

問題は、一部のプロパティのみを更新したいのですが、更新していないにもかかわらず、null 非許容値が入力されていないとエンティティ バリデーターが不平を言うことです。

バリデーターをオフにする唯一のオプションはありますか?

更新しているプロパティを検証したいので、バリデーターを無効にしたくありません。

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 に答える