関連するビットが次のようになっているEF 4.2を使用しています。
public class MyDbContext : DbContext
{
public IDbSet Users { get; set; }
public IDbSet Memberships { get; set; }
}
public User()
{
public int Id { get; set; }
public string Email { get; set; }
public virtual Membership Membership { get; set; }
}
特定のUserを取り戻して、関連付けられたMembershipオブジェクトを更新すると(失敗したパスワードのカウントを更新すると言う)、Membershipオブジェクトは更新されますが、Userプロパティは更新されていません。メンバーシップオブジェクトが何らかの変更イベントを発生させ、それが親ユーザーに吹き込まれているためですか?
これは、ユーザーを読み込み、user.Membershipナビゲーションプロパティを使用するのではなく、_context.Memberships.Find(userId)を使用してメンバーシップを取得しても発生します。私はコンテキストグラフでこれらの2つが同等であると推測していますか?
変更された日付の計算値の列を使用すると、更新されるUserオブジェクトを停止する方法はありますか?子エンティティが変更されたときに更新されないようにしたいと思います。理想的には、Userプロパティの一部を読みたいのでMembership DbSetを照会するのではなく、Userオブジェクトを取り戻したいと思っています。
親Usersテーブルで起動されるSQLは次のとおりです。
update [dbo].[Users]
set @p = 0
where (([Id] = @0) and ([Version] = @1))