如何确保 EF 为对象的相同出现生成相同的 Id?
例如,如果我有这样的课程:
class Foo{
ICollection<Bar> Bar1;
ICollection<Bar> Bar2;
}
如果我创建一个新实体并向两者添加一个(没有设置 ID)Foo
的单个实例,并且- 它会为两者使用相同的 ID 还是每次都创建一个新的?例如:Bar
Bar1
Bar2
var bar = new Bar();
var foo = new Foo{
Bar1 = new List<Bar>(){ bar };
Bar2 = new List<Bar>(){ bar };
}
context.SaveChanges();
是否会包含具有相同 IDBar1
的相同记录?Bar2
bar
更新:如果我有两个在Equals
哈希码方面相同的实例怎么办?
var first = new Bar();
var second = new Bar(); /// first.equals(second )
var foo = new Foo{
Bar1 = new List<Bar>(){ first };
Bar2 = new List<Bar>(){ second };
}
还是 EF 不检查是否相等?