实体框架问题

本文关键字:问题 框架 实体 | 更新日期: 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);
}