首先是ASP.NET EF代码:在模型生成期间检测到一个或多个验证错误

时间:2012-04-11 14:44:29

标签: asp.net entity-framework code-first relationship

我的人际关系有些问题。 Campaign有页面,页面有CssFile。当我从数据库查询所有广告系列时,会抛出错误(见下文)。

public IQueryable<Campaign> FindAll()
{
    return campaigns.Include(c => c.Pages).AsQueryable();
}

 public class Page
    {
        [Key()]
        public int Id { get; set; }
        public string Logo { get; set; }
        public string LogoAlt { get; set; }
        public string Title { get; set; }
        public string Description { get; set; }
        public string Footer { get; set; }
        [ForeignKey("CssFile")]
        public int CssFileId { get; set; }
        public virtual CssFile CssFile { get; set; }
        [ForeignKey("Campaign")]
        public int CampaignId { get; set; }
        public virtual Campaign Campaign { get; set; }

        public Page()
        {
           CssFile = new CssFile(this, "default.css");
           CssFileId = CssFile.CssFileId;
        }
        public override bool Equals(object obj)
        {
            if (!(obj is Page))
                return false;
            return ((Page)obj).Id == this.Id;
        }
        public override int GetHashCode()
        {
            return base.GetHashCode();
        }
    }



public class CssFile
    {
        public const string PATH = "../../Uploads/";
        [Key()]
        public int CssFileId { get; set; }
        public string FileName { get; set; }
        public string Content { get; set; }

        [ForeignKey("Page")]
        public int PageId { get; set; }
        public virtual Page Page { get; set; }

        public CssFile()
        {
            FileName = "default.css";
            Content = "";
        }
        public CssFile(Page page, string name, string content)
        {
            Page = page;
            PageId = page.Id;
            this.FileName = name;
            this.Content = content;
        }
        public CssFile(Page page, string name)
        {
            Page = page;
            PageId = page.Id;
            this.FileName = name;
            Content = "";
        }
}

错误:

  

在模型生成期间检测到一个或多个验证错误:

     

System.Data.Edm.EdmAssociationEnd :: Multiplicity在Role中无效   关系'Page_CssFile'中的'Page_CssFile_Target'。因为   依赖角色属性不是关键属性,即上限   依赖角色的多样性必须是 * 。

     

描述:执行期间发生了未处理的异常   当前的网络请求。请查看堆栈跟踪了解更多信息   有关错误的信息以及它在代码中的起源。

     

异常详细信息:   System.Data.Entity.ModelConfiguration.ModelValidationException:一个或   在模型生成期间检测到更多验证错误:

     

System.Data.Edm.EdmAssociationEnd :: Multiplicity在Role中无效   关系'Page_CssFile'中的'Page_CssFile_Target'。因为   依赖角色属性不是关键属性,即上限   依赖角色的多样性必须是 * 。

1 个答案:

答案 0 :(得分:0)

猜猜我应该在StackOverflow上搜索得更好/更多: Entity Framework One-To-One Mapping Issues