EF如何在使用EntityTypeConfiguration时获取密钥属性

时间:2014-04-06 03:57:34

标签: entity-framework entity-framework-4 entity-framework-5

我有一个使用EntityTypeConfiguration的EF模型,以便设置其属性的配置:

public EntityMap()
        {
            // Primary Key
            this.HasKey(t => t.MasterEntity);

            // Properties
            this.Property(t => t.MasterEntity)
                .IsRequired()
                .HasMaxLength(10);

            this.Property(t => t.EntityType)
                .IsRequired()
                .HasMaxLength(10);

            this.Property(t => t.Description)
                .IsRequired()
                .HasMaxLength(50);

            this.Property(t => t.GlobalEntity)
                .HasMaxLength(10);

            // Table & Column Mappings
            this.ToTable("entity");
            this.Property(t => t.MasterEntity).HasColumnName("masterentity");
            this.Property(t => t.EntityType).HasColumnName("entitytype");
            this.Property(t => t.Description).HasColumnName("description");
            this.Property(t => t.GlobalEntity).HasColumnName("globalentity");
            this.Property(t => t.Active).HasColumnName("active");

在我使用DataAnnotations之前,为了获得我使用的主键:

dbEntry.Entity.GetType().GetProperties().Single(p => p.GetCustomAttributes(typeof(KeyAttribute), false).Count() > 0).Name;

关于如何使用 EntityTypeConfiguration 的任何线索?

由于

1 个答案:

答案 0 :(得分:0)

您可以通过我发布here的扩展程序获取EntityKey

获得EntityKey后,您可以通过

获取关键属性名称
var keyNames = enityKey.EntityKeyValues.Select (ekv => ekv.Key)