0

当我尝试从我的存储库加载我的所有 CssFile 时,我得到一个多重性错误。在调试当前存在的对象时,一切似乎都很好。我试图 Include() 页面但发生了同样的错误。

    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; }
      }
4

2 回答 2

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”,因为关系是一对一的,并且主键将被共享。

于 2012-04-12T10:45:53.947 回答
0

它与延迟加载有关,我试图重新加载已经加载的对象。不知道为什么它崩溃的细节,但设法修复它。

于 2012-04-12T09:01:32.500 回答