我遇到這樣一種情況,即我的表名與使用EF 6中的映射的模型上的類屬性不同。模型和數據庫像這樣:從實體框架6數據庫中的數據庫中獲取列名稱首先在映射中使用不同的屬性名稱
public class AGENTMap : EntityTypeConfiguration<AGENT>
{
public AGENTMap()
{
// Primary Key
this.HasKey(t => new {t.AgentCode });
// Properties
this.Property(t => t.AgentCode)
.HasMaxLength(10);
this.Property(t => t.AgentName)
.HasMaxLength(30);
// Table & Column Mappings
this.ToTable("AGENT");
this.Property(t => t.agent_cd).HasColumnName("agent_cd");
this.Property(t => t.agent_nm).HasColumnName("agent_nm");
}
}
它等同於具有這些屬性的AGENT類。 問題是,當我試圖讓使用此代碼段中的主鍵:
ObjectContext objectContext = ((IObjectContextAdapter)_context).ObjectContext;
ObjectSet<TEntity> objSet = objectContext.CreateObjectSet<TEntity>();
IEnumerable<string> keyNames = objSet.EntitySet.ElementType.KeyMembers
.Where(p => p.MetadataProperties.Any(m => m.PropertyKind == PropertyKind.Extended
&& Convert.ToString(m.Value) == "Identity"))
.Select(e => e.Name).ToList();
return keyNames;
它返回的屬性名稱的映射類。我想獲得「agent_cd」..這是數據庫的列名..是否有一種方法在EF6中獲取Db上的確切列名?
好點的啓動。伴隨着獲得表值的私有方法,我將能夠提取表的pkey字段。 – 2015-02-10 02:25:24