[英]Multiplicity constraint violated Entity framework 5
您好,我有3個類Person,UserProfile(它繼承了Person)和Results,一個Person可以具有一個或多個結果,當我嘗試向某人添加ia結果時,如果標題中提到了錯誤,則我的類如下。 任何幫助,將不勝感激。
[Table("People")]
public class Person : IPerson
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Name
{
get
{
return FirstName + " " + LastName;
}
set{}
}
public string Email { get; set; }
public DateTime? LastModified { get; set; }
public virtual ICollection<Result> Results { get; set; }
}
UserProfile類
[Table("UserProfile")]
public class UserProfile : Person
{
public UserProfile()
{
Faculty = new Faculty();
Projects = new Collection<Project>();
}
public string UserName { get; set; }
public string CNP { get; set; }
public virtual Faculty Faculty { get; set; }
public virtual ICollection<Project> Projects { get; set; }
}
結果類
public abstract class Result:INamedEntity
{
protected Result()
{
ResultType = new ResultType();
}
public int Id { get; set; }
public string Name{get;set;}
public virtual ResultType ResultType { get; set; }
public DateTime? LastModified { get; set; }
}
問題功能
public void AddResultForUser(int userId, Result result)
{
_ctx.Users.Single(u => u.Id == userId).Results.Add(result);
}
每當調用此函數后,我都會調用_ctx.SaveChanges()
我得到了休閑的錯誤
Multiplicity constraint violated. The role 'Person_Results_Source' of the relationship 'Repository.Person_Results' has multiplicity 1 or 0..1.
謝謝。
您是否要向多個用戶添加相同的Result
?
在這種情況下,這將失敗,因為實體框架將實現Person
類的Results
集合作為從Results
到Persons
的外鍵。 映射與將Person
導航屬性添加到Result
類相同。
如果希望Person
和Result
具有多對多關系,則必須將ICollection<Person> Persons
屬性添加到Results
類中,以使EF了解這一點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.