实体框架问题
本文关键字:问题 框架 实体 | 更新日期: 2023-09-27 18:24:05
我有这个问题:
有两个具有一对一关系的entyties,其中的boot具有相同的Id列名
文档_销售_订单+-----------------++------------------++DocumentId++DocumentId++人员+1-----1+订单日期++状态++买方++…++++------------------++------------------+
这是实体定义
public partial class Document_head
{
public Document_head()
{
// Other
}
[Key]
public string DocumentId {get;set;}
public int PersonId {get;set;}
public int status {get;set;}
[ForeignKey("DocumentId")]
public virtual sales_Order sales_Order { get; set; }
}
public partial class sales_order
{
public sales_order()
{
//Other
}
[Key]
public string DocumentId { get; set; }
public virtual Document_head Document_head { get; set; }
}
以下是上下文
public class MyContext : DbContext
{
public DbSet Document_head Document_head{ get; set; }
public DbSet<sales_order> sales_order{ get; set; }
modelBuilder.Entity<Document_head>()
.HasOptional(p => p.sales_order).WithRequired();
modelBuilder.Entity<sales_order>()
.HasRequired(p => p.Document_head).WithOptional();
}
问题出在运行MVC3应用程序时。
上面写着:
列名"Document_Head_DocumentId"无效。
如果有人能帮我的话,我会花很多时间处理这种情况。。非常感谢。
按如下方式更改配置。您只需要一个配置行,它应该包括两个导航字段。
public class MyContext : DbContext
{
public DbSet Document_head Document_head{ get; set; }
public DbSet sales_order{ get; set; }
modelBuilder.Entity‹sales_order›().HasRequired(p => p.Document_head)
.WithOptional(p => p.sales_order);
}