C# 多级联路径错误实体框架代码优先
我知道这一点已多次提出,但 提供的答案似乎都没有帮助。我知道 基本问题和使用fluentapi试图修改它的 但这似乎被忽视了(或者我做错了)。 下面是一个例子 问题代码C# 多级联路径错误实体框架代码优先,c#,entity-framework,ef-code-first,C#,Entity Framework,Ef Code First,我知道这一点已多次提出,但 提供的答案似乎都没有帮助。我知道 基本问题和使用fluentapi试图修改它的 但这似乎被忽视了(或者我做错了)。 下面是一个例子 问题代码 public class Request { [Key] public int RequestID { get; set; } public string RequestDescription { get; set; } public int RequestPriority { get; set;
public class Request
{
[Key]
public int RequestID { get; set; }
public string RequestDescription { get; set; }
public int RequestPriority { get; set; }
public string RequestStub { get; set; }
[ForeignKey("Requester")]
public int RequesterID { get; set; }
[ForeignKey("Admin")]
public int AdminID { get; set; }
public bool RequestAnsweredFlag { get; set; }
public bool RequestSeenFlag { get; set; }
public virtual User Requester {get;set;}
public virtual User Admin { get; set; }
}
上下文类
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Request>()
.HasRequired(a => a.Requester)
.WithMany()
.HasForeignKey(u => u.RequesterID);
modelBuilder.Entity<Request>().HasRequired(a => a.Admin)
.WithMany()
.HasForeignKey(u => u.AdminID).WillCascadeOnDelete(false);
}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
modelBuilder.Entity()
.HasRequired(a=>a.Requester)
.有很多
.HasForeignKey(u=>u.RequesterID);
modelBuilder.Entity().HasRequired(a=>a.Admin)
.有很多
.HasForeignKey(u=>u.AdminID).WillCascadeOnDelete(false);
}
任何帮助都将不胜感激。如果我理解正确,您需要删除属性[ForeignKey(“请求者”)]、[ForeignKey(“管理员”)和删除fluent api规则。并按如下方式修改代码
public class Request
{
[Key]
public int RequestID { get; set; }
public string RequestDescription { get; set; }
public int RequestPriority { get; set; }
public string RequestStub { get; set; }
public int RequesterID { get {return Requester.Id} }
public int AdminID { get {return Admin.Id} }
public bool RequestAnsweredFlag { get; set; }
public bool RequestSeenFlag { get; set; }
public virtual User Requester {get;set;}
public virtual User Admin { get; set; }
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
}
默认情况下,它应该正确映射所有内容他应该将此标记为答案,它对我非常有效:)