次のような POCO エンティティがあります。
public class Entity {
public int Id { get; set; }
public int? OtherEntityId { get; set; }
public virtual OtherEntity OtherEntity { get; set; }
}
コードファーストの構成は次のとおりです。
conf.HasKey(e => e.Id).ToTable("entities");
conf.Property(e => e.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
conf.HasOptional(e => e.OtherEntity).WithMany().HasForeignKey(e => e.OtherEntityId);
データベースで生成されたオプションと FK プロパティを実行時に取得できるようにしたいと考えています。たとえば、次のように主キー プロパティを動的に取得できます。
var keyProperties = objectContext.CreateObjectSet<Entity>()
.EntitySet
.ElementType
.KeyMembers
.Select(km => typeof(Entity).GetProperty(km.Name));
.ToList()
これを行うにはどうすればよいですか (私は EF 4.3.1 を使用しています)。