我得到:错误:列名称'OrganizationStructure_ID'无效.
public OrganizationStructure()
{
ChildrenItems = new HashSet<OrganizationStructure>();
InputDate = DateTime.Now;
}
public int ID { get; set; }
public string Name { get; set; }
public virtual int? ParentID { get; set; }
public int OrganizationID { get; set; }
public int OrganizationTypeID { get; set; }
public int OrganizationActivityID { get; set; }
public int OrganizationLocationID { get; set; }
public string AddRemark { get; set; }
public int UserId { get; set; }
public DateTime InputDate { get; set; }
public int? RemAttr { get; set; }
public virtual ICollection<OrganizationStructure> ChildrenItems { get; set; }
Run Code Online (Sandbox Code Playgroud)
指数行动:
return View(_organizationStructureRepository.GetAll().ToList()
.Where(t => t.ParentID == null));
Run Code Online (Sandbox Code Playgroud)
Lad*_*nka 43
那是因为您没有将FK属性与导航属性配对.我希望ParentID应该指向父母OrganizationStructure并且ChildrenItems应该指向孩子OranizationStructures.
如果您的模型不包含Parent父级的导航属性,则OrganizationStructure必须使用fluent-API告知EF ParentID为FK:
modelBuilder.Entity<OrganizationStructure>()
.HasMany(o => o.ChildrenItems)
.WithOptional()
.HasForeignKey(c => c.ParentID);
Run Code Online (Sandbox Code Playgroud)
我想到的是当你有一个引用一个表的ICollection并且它没有可以找到的列时,它会创建一个让你尝试在表之间建立连接.这种情况恰好发生在ICollection上并且让我"慌乱"试图解决这个问题.
| 归档时间: |
|
| 查看次数: |
45347 次 |
| 最近记录: |