2相同类型的对象映射到MySQL DB问题

时间:2011-09-08 22:15:13

标签: mysql entity-framework database-design

public class Purchase {
    public Address to { get; set; }
    public Address from { get; set; }

}
public class Address {
    public string name { get; set; }
}

我有1个购买地址。这应该如何在数据库(mySql)上,包括在Entity Framework上使用的外键。

我遇到的问题是实体理解(基于fk)地址中的导航性是1到多(*)而且我没有购买地址列表,我已经定义了2。

谢谢, 巴特。

1 个答案:

答案 0 :(得分:1)

您可以配置表格的关系。像这样建立模型,

 public class PurchaseConfiguration : EntityTypeConfiguration<Purchase >
{
      public PurchaseConfiguration()
      {

           HasRequired(p=>p.to ).WithOptionalDependent().WillCascadeOnDelete(false);
           HasRequired(p => p.from ).WithOptionalDependent().WillCascadeOnDelete(false);
      }

 }

和你的数据库上下文你可以添加像这样的配置,

public class yourDbContext:DbContext
{
        public DbSet<Purchase> Purchases{ get; set; }
        public DbSet<Address> Addresses{ get; set; }
        //other db sets here..

       protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
          modelBuilder.Configurations.Add(new PurchaseConfiguration ());
          // you can add configurations for other tables 
         }
}