使用Entity框架保存数据时,一个或多个实体的验证失败

时间:2014-03-03 04:03:37

标签: asp.net-mvc entity-framework validation entities

我有以下结构:

Class A{

    Public virtual int Id{get;set;}
    [Required]
    public virtual string Title { get; set; }
    [Required]
    public virtual string Body { get; set; }
}

Class B{

   Public virtual int Id{get;set;}
   [Required]
   public virtual string Description{ get; set; }
}

Class C{

  public virtual int Id{get;set;}
  public virtual int AId {get;set;}
  public virtual A A{get;set;}
  public virtual int BId {get;set;}
  public virtual B B{get;set;}
}

EntityFramework会自动在数据库中创建表并添加引用。

现在在C类中保存数据时,它给我一个或多个实体的验证失败

我已检查过System.Data.Entity.Validation.DbEntityValidationException

并发现它给出错误标题和正文是必需的。如果我通过AId和BId,为什么我需要传递Title和Body。 我还检查了我是否通过了标题和正文,然后它将数据保存在C以及A和B中。我只想保存在C中。

你能指导我做错了吗。

提前致谢。

1 个答案:

答案 0 :(得分:0)

请发布实际创建并保存对象的示例代码。

可能是因为A和B是C的属性。为了保存C,EF首先需要保存A和B并将它们以外键关系链接到C.没有A和B就不能拥有C而且你不能保存没有Title和Body的A,因为它们是必填字段。

没有看到更多代码,很难肯定地说。