Entity framework 使用实体框架(fluent Api)的可选一对多关系
我们可以在实体框架中选择一对多关系吗 看下面的课程部门和人员Entity framework 使用实体框架(fluent Api)的可选一对多关系,entity-framework,entity,ef-fluent-api,Entity Framework,Entity,Ef Fluent Api,我们可以在实体框架中选择一对多关系吗 看下面的课程部门和人员 public class Person { public int Id{ get; set; } public Department Department { get; set; } public int DepartmentId } public class Department { public int Id{ get; set; } public List<Person>
public class Person
{
public int Id{ get; set; }
public Department Department { get; set; }
public int DepartmentId
}
public class Department
{
public int Id{ get; set; }
public List<Person> Members { get; set; }
}
Person to Department
.HasOptional(m => m.Department)
.WithOptional( d => d.Members)
.HasForeignKey( m=> m.DepartmentId);
公共类人物
{
公共int Id{get;set;}
公共部门部门{get;set;}
公共int部门ID
}
公共课系
{
公共int Id{get;set;}
公共列表成员{get;set;}
}
人员到部门
.HAS可选(m=>m.Department)
.WithOptional(d=>d.Members)
.HasForeignKey(m=>m.DepartmentId);
结果应该是这样的
Id名称部门Id
1约翰x
2 Ahmad y
3人名无效
4个人x
从上面的例子可以看出,有些人有部门,有些人没有
该部门有一份人员名单
这给了我一个错误。像这样
多重性与角色中的引用约束冲突
由于从属角色中的所有属性都不可为空,因此主体角色的多重性必须为“1”。问题在于您的模型和配置不匹配。在fluent API中,您将依赖项的外键配置为可选,但在您的模型中,外键是必需的: 在您的
个人课程更改中:
public int DepartmentId
到
这样可以确保外键在数据库中实际具有值“NULL”
public int? DepartmentId