1

DbContext で Entity Framework 5 を使用しています。

私のシナリオでは、既存のエンティティを更新し、データベースへの変更を永続化しようとしています。他のプロパティの中でも、エンティティには DateTime である「LastUpdated」プロパティがあります。

私のエンティティは POCO エンティティであり、コンテキストは DbContext から継承されます。

これが私のコードです:

public void Update(Location location)
{
    using (var context = new EfContext())
    {
        context.Locations.Attach(location);
        context.Entry(location).State = EntityState.Modified;
        context.SaveChanges();
    }
}

私のアプリケーションの要件では、最初に同じコンテキストからエンティティを取得するのではなく、変更されたエンティティを新しいコンテキストにアタッチする必要があります。

これは、LastUpdated フィールドを除く、エンティティのすべてのフィールドで実際に機能します。これは日時であり、保存されていません。

ここで私が間違っていることはありますか?

4

1 に答える 1

0

Update メソッドのパラメーターとして場所の LastUpdated プロパティ値を渡してみてください

public void Update(Location location, DateTime locationLastUpdated)
{
    using (var context = new EfContext())
    {
        location.LastUpdated = locationLastUpdated;
        context.Locations.Attach(location);
        context.Entry(location).State = EntityState.Modified;
        context.SaveChanges();
    }
}
于 2013-01-28T23:23:18.403 に答える