我有两个实体
public class Person
{
public virtual int ID { get; set; }
public virtual string Name { get; set; }
public virtual Employee Employee { get; set; }
}
public class Employee
{
public virtual int ID { get; set; }
public virtual string Code { get; set; }
public virtual int PersonId { get; set; }
[ForeignKey("PersonId")]
public virtual Person Person { get; set; }
}
在我的业务中,首先我们创建人员,然后我们通过选择一个人来创建员工,同时为员工选择人员我只想选择与员工无关的人员,我无法想象如何配置员工人物实体中的财产
答案 0 :(得分:0)
如果您选择的人员与特定员工无关,那么您就不应该拥有该物业的财产。您应该只有相关实体的链接。尝试在LINQ中执行此操作,它应该让所有与员工无关的人得到。
var people = context.People.Where(x => x.Employee == null);
public class Person
{
public virtual int ID { get; set; }
public virtual string Name { get; set; }
public virtual Employee Employee { get; set; }
}
public class Employee
{
public virtual int ID { get; set; }
public virtual string Code { get; set; }
public virtual int PersonId { get; set; }
[ForeignKey("PersonId")]
[InverseProperty("Employee")]
public virtual Person Person { get; set; }
}
认为应该这样做,反向属性创建映射所以只需要从一方完成。
希望这就是你要找的东西。
答案 1 :(得分:0)
我找到了答案,不知道它是否是最好的!
jobQuery = jobQuery.Where(jb => !Context.Employees.Any(emp => emp.JobId == jb.Id));