1
我有这样的问题:实体框架问题
有两个entyties具有一一对应的关系,它们的启动具有相同的ID列名
Document_head sales_Order +-----------------+ +------------------+ + DocumentId + + DocumentId + + Person + 1-----1 + OrderDate + + Status + + Purchaser + + ... + + ... + + ----------------+ +------------------+
下面是实体定义
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” 是无效的。
我花了很多时间在这种情况下,如果有人可以帮助我这个..将不胜感激。
+1对此答案,我强烈建议您使用流畅的api而不是数据注释,因为前者具有更多的功能。 – Oybek 2012-02-10 12:27:15
很快你的答案.....我做了更改..但问题仍然存在......为什么:public DbSet sales_order {get;组; }而不是公共DbSet <sales_order> sales_order {get;组; } – 2012-02-10 13:27:30
@JuanPabloGomez它不清楚你对评论的看法。你能否更新你的问题 – Eranga 2012-02-10 14:20:01