【发布时间】:2014-05-25 07:59:39
【问题描述】:
我找到了很多这方面的例子,但没有一个适合我......
我有主课:
public class Class1
{
public int id { get; set; }
public string desc { get; set; }
public virtual Class2 class2 {get; set;}
}
第二类:
public class Class2
{
public int id { get; set; }
public string desc { get; set; }
}
我是这样映射Class1的
public class Class1Map : EntityTypeConfiguration<Class1>
{
public Class1Map()
{
// Primary Key
this.HasKey(t => t.Id);
// Table & Column Mappings
this.ToTable("Class1TableName");
this.Property(t => t.id).HasColumnName("IdColumnName");
this.Property(t => t.desc).HasColumnName("DescColumName");
}
}
这很好用
但我尝试了多种方法将Class1 的Class2 属性绑定到Class1Tablename 的IdClass2ColumnName 字段作为链接到Class2 表的IdColumnName 的外键,但均未成功。
如您所见,我不想将 IdClass2 属性也放入 Class1
为了测试我尝试了但没有成功:
this.HasRequired(t => t.class2)
.WithRequiredPrincipal()
.Map(m => m.MapKey("IdClass2ColumnName "));
this.HasRequired(t => t.class2)
.WithMany()
.Map(m => m.MapKey("IdClass2ColumnName"));
【问题讨论】:
-
经过一些工作后,创建了数据库(即使在配置中设置的 AutomaticMigrationsEnabled 属性不起作用......)但在 Class1TableName 中没有找到 IdClass2ColumnName 字段,而是 class2_id 一个
-
附加信息:表中的每个class2条目都可以在许多class1条目中使用,它是一个简单类型的表
标签: c# entity-framework ef-code-first mapping relationship