私は2つのプロパティを持つEFクラスを持っています。プロパティを別のプロパティの属性として指定しますか?
public class MyTable
{
public DateTime Requested { get; set; }
public Guid RequestedUserID { get; set; }
}
は今、私が変更されたときに要求さRequestedUserID
に、現在のユーザーIDを挿入することができるようにしたいです。これを行うには、EFのDbContext.SaveChanges()
イベントをオーバーライドして、変更された列に特定の属性があるかどうかをチェックして、コードに関連するUserID
列を変更するように指示します。
public class MyTable
{
[TrackModifingUser(UserIDColumn = nameof(RequestedUserID))]
public DateTime Requested { get; set; }
public Guid RequestedUserID { get; set; }
}
をし、後で私のDbContext.SaveChanges()
イベントで、私は名前によって財産になるだろうし、それに応じてその値を設定します。例は、マークアップ属性。
問題は、私のアトリビュートが何らかの形でプロパティ自体を格納できることを望みます。そして、それをスキップすると、名前でプロパティを探しています。このようなもの。
public class MyTable
{
[TrackModifingUser(UserIDColumn = RequestedUserID)]
public DateTime Requested { get; set; }
public Guid RequestedUserID { get; set; }
}
が、これは可能ですか私は、実行時にプロパティを解決する必要がありますか?同じ列に対して名前を複数回指定するのを避けるために使用できるキャッシュはありますか?
EFは単なる使用例です。目的は、個々の列が 'GetPropertByName'(またはメソッド名が何であれ)を使わずに属性内でお互いを指定できるようにすることです。 – Licht