当我尝试从我的存储库加载所有CssFile时,出现多重性错误。在调试当前现有对象时,一切似乎都很好。我试图包含()页面,但发生了同样的错误。
public CssFile FindByPage(Page page)
{
return cssFiles.Where(f => f.PageId == page.Id).Single();
}
违反了多重性约束。关系的作用 Page_CssFile_Target Paycento_Models.DAL.Page_CssFile,多样性 1或0 .. 1。
public class Page
{
[Key()]
public int Id { get; set; }
[ForeignKey("CssFile")]
public int CssFileId { get; set; }
public virtual CssFile CssFile { get; set; }
}
public class CssFile
{
public string FileName { get; set; }
[Key()]
[ForeignKey("Page")]
public int PageId { get; set; }
public virtual Page Page { get; set; }
}
答案 0 :(得分:0)
它与Lazy加载有关,我试图重新加载已经加载的对象。不知道它崩溃的具体原因,但设法修复它。
答案 1 :(得分:0)
我认为代码应该是
public class Page
{
[Key()]
public int Id { get; set; }
//[ForeignKey("CssFile")]
//public int CssFileId { get; set; }
public virtual CssFile CssFile { get; set; }
}
public class CssFile
{
[Key()]
public int Id { get; set; }
public string FileName { get; set; }
[Required]
[ForeignKey("Id")]
public virtual Page Page { get; set; }
}
CssFile中不需要'PageId',因为关系是一对一的,主键将被共享。