1

オブジェクトの特定のフィールドのみを更新するために、このコードを取得しました。

var myEntity = new DBEntity { Id = 1, Field1 = true, Field2 = "Test" };
context.DBEntities.Attach(myEntity);
var entry = context.Entry(myEntity);
entry.Property(x => x.Field1).IsModified = true;
entry.Property(x => x.Field2).IsModified = true;
context.SaveChanges();

これは完璧に機能します。今、エンティティ オブジェクトにログ エントリを追加したいと考えています。誰かが更新を行うたびに、ログで追跡したいと考えています。

var myEntity = new DBEntity { Id = 1, Field1 = true, Field2 = "Test" };
var logEntry = new DBEntityLog { LogText = "Update to field1 and field2" };
myEntity.Logs.Add(logEntry);
context.DBEntities.Attach(myEntity);
var entry = context.Entry(myEntity);
entry.Property(x => x.Field1).IsModified = true;
entry.Property(x => x.Field2).IsModified = true;
// Property does not work on collection objects
context.SaveChanges();

logEntry をデータベースに保存するにはどうすればよいですか? 現時点では、フィールドのみを更新します。

4

1 に答える 1

0

ログ エントリを取得し、EntityState を added に設定することで問題を解決しました。

var entryLog = cibtext,Entry(logEntry); 
entryLog.State = EntityState.Added;
于 2012-11-14T15:47:50.153 に答える