有两个实体A和B。它们之间存在一对多关系。 假设A为以下类型。
class A
{
public int Id { get; set; }
public bool isActive{ get; set; }
public ICollection<B> BCollection{ get; set; }
//Rest Of A properties
}
class B
{
public int Id { get; set; }
public A A{ get; set; }
public int AId{ get; set; }
public bool isAActive{ get; set; }
//Rest of B Properties
}
B AId中的S是A中主键Id的外键。由于在B中具有A实例,因此该实体框架由其自身配置。
是否可以通过实体框架配置DBSet,以便根据A中isActive的值自动设置isAActive的值?
答案 0 :(得分:1)
不确定这是否是您要寻找的东西,但使用构造函数可能会有所帮助
public class A
{
public int id { get; set; }
public bool isActive { get; set; }
public List<B> BCollection { get; set; }
}
public class B
{
public B (A a){
isAActive = a.isActive;
}
public int id { get; set; }
public A A { get; set; }
public bool isAActive { get; set; }
}
static void Main(string[] args)
{
A a = new A()
{
id = 1,
isActive = true
};
A a2 = new A()
{
id = 2,
isActive = false
};
List<B> bs = new List<B>()
{
new B(a) { id = 100, A = a},
new B(a) { id = 200, A = a}
};
a.BCollection = bs;
List<B> bs2 = new List<B>()
{
new B(a2) { id = 300, A = a2},
new B(a2) { id = 300, A = a2}
};
a2.BCollection = bs2;
return;
}
a.BCollection的isAActive设置为true
a2.BCollection的isAActive设置为false