Bob*_*les 7 c# sql-server asp.net asp.net-mvc entity-framework
您好我有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; }
}
Run Code Online (Sandbox Code Playgroud)
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; }
}
Run Code Online (Sandbox Code Playgroud)
结果类
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; }
}
Run Code Online (Sandbox Code Playgroud)
问题的功能
public void AddResultForUser(int userId, Result result)
{
_ctx.Users.Single(u => u.Id == userId).Results.Add(result);
}
Run Code Online (Sandbox Code Playgroud)
每当调用此功能后我都会打电话 _ctx.SaveChanges()
我得到了一个错误的错误
Multiplicity constraint violated. The role 'Person_Results_Source' of the relationship 'Repository.Person_Results' has multiplicity 1 or 0..1.
Run Code Online (Sandbox Code Playgroud)
谢谢.
And*_*bel 21
您是否尝试将其添加Result到多个用户?
在这种情况下,这将失败,因为实体框架将实现Results的集合Person类来自于外键Results来Persons.映射将与Person向Result类中添加导航属性相同.
如果你想要Person并Result拥有多对多的关系,你必须ICollection<Person> Persons在Results类中添加一个属性,以使EF了解这一点.
| 归档时间: |
|
| 查看次数: |
26320 次 |
| 最近记录: |