验证失败的一个或多个实体上使用实体框架
问题描述:
保存数据我有以下结构:验证失败的一个或多个实体上使用实体框架
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.
你能指导我做错了什么。
在此先感谢。
答
请发布实际创建并保存对象的示例代码。
这很可能是因为A和B是C的属性。为了保存C,EF需要首先保存A和B并将它们链接到C中的外键关系。如果没有A和B,则不能拥有C,并且因为他们是必填字段,所以无法保存没有标题和正文的A。
没有看到更多的代码,很难说肯定。
[验证失败,一个或多个实体可能重复。请参阅'EntityValidationErrors'属性的更多细节](http://stackoverflow.com/questions/7795300/validation-failed-for-one-or-more-entities-see-entityvalidationerrors-propert) –
为什么你把所有标记为'虚拟'? – Marco