验证失败的一个或多个实体上使用实体框架

问题描述:

保存数据我有以下结构:验证失败的一个或多个实体上使用实体框架

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。 我也检查过,如果我通过标题和身体,那么它保存在C以及A和B的数据。我只想保存在C.

你能指导我做错了什么。

在此先感谢。

+0

[验证失败,一个或多个实体可能重复。请参阅'EntityValidationErrors'属性的更多细节](http://stackoverflow.com/questions/7795300/validation-failed-for-one-or-more-entities-see-entityvalidationerrors-propert) –

+0

为什么你把所有标记为'虚拟'? – Marco

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

这很可能是因为A和B是C的属性。为了保存C,EF需要首先保存A和B并将它们链接到C中的外键关系。如果没有A和B,则不能拥有C,并且因为他们是必填字段,所以无法保存没有标题和正文的A。

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