私はリフレクションについてあまり詳しくありませんが、object
そのクラスが特定の属性に関連付けられたプロパティを持っている場合に を返すメソッドを実装することは可能でしょうか?
この次の実装が不要になるのではないかと思いました
public interface IEntity
{
object ID { get; }
}
public class Person : IEntity
{
[Key]
public int PersonID { get; }
public string Name { get; set; }
public int Age { get; set; }
object IEntity.ID
{
get { return PersonID; }
}
}
したがって、すべてのクラスに「IEntity」を実装する代わりに、次のようなことができます。
public abstract class EntityBase
{
public object ID { get { return FindPrimaryKey(); } }
protected object FindPrimaryKey()
{
object key = null;
try
{
//Reflection magic
}
catch (Exception) { }
return key;
}
}
これにより、コード ファーストで生成されたすべてのクラスを調べてこの小さな機能を実装する代わりに、時間を節約できます。