だから、これを「Linq to Entities の監査」などと呼びたかったのですが、それは私がやりたかったことを完全にカプセル化していないことに気付きました。簡単に言えば、データ モデラーは、相互参照テーブル (多対多関係の中間を表すテーブル) であっても、アプリケーション内のすべてのテーブルに 4 つの列を配置する必要があります。
とにかく、変更の追跡に関する記事をたくさん読みました。これは、私がやりたいことに近いですが、正確ではありません。私がやろうとしているのは、モデルに含まれていない、更新する必要がある列を追加するために TSQL 生成をオーバーライドすることです。
編集
この質問についてさらに考えてみると、私の例が完全ではないことに気付きました... User <---> Roles の関係と、それがどのように機能するかを想像してみてください。通常、[Users]、[Roles]、および [UserRoles] の 3 つのテーブルを作成します。これらのテーブルには、多くのユーザーを多くのロールに参照するための 2 つの列があります。
ここで、3 つのテーブルすべてに、愛する DBA が CreatedBy、CreatedOn、UpdatedBy、UpdatedOn の 4 つの列を追加したとします。
コードでは、おそらく次の C# コードのように、各ユーザーに対するロールのコレクション (リスト、コレクション、スタックなど) を作成します。
public class User
{
public int Id { get; set;}
public string Username { get; set;}
public string Firstname { get; set; }
public string Lastname { get; set; }
public string Password { get; set; }
public List<Role> Roles { get; set; }
}
public class Role
{
public int Id {get; set; }
public string Code { get; set; }
public string Description { get; set; }
}
Entity Framework を使用してモデルにフィールドを追加せずに、すべての更新および作成された列を正常に更新できた人はいますか?もしそうなら、彼らはこの例を提供できますか?
同じ質問ですが、NHibernate の場合です。NHibernate がこれをサポートするが、Entity Framework がサポートしない場合、私は Entity Framework を介して NHibernate を使用できるようにする権限を説得することに満足しています。これには正当な理由があるからです。