1
我的實體類是這樣的:實體框架代碼首先愁楚
public class A{
[Key]
string Name;
B DefaultB;
ICollection<B> Bs;
}
public class B{
[Key]
int Key;
}
public class C{
[Key]
string Key;
A MyA;
B MyB;
public C(A a,B b){
MyA=a;
MyB=b;
}
}
public class MyDbContext:DbContext{
public DbSet<A> As
public DbSet<B> Bs
public DbSet<C> Cs
}
測試代碼是這樣的:
main(){
A a=new A();
B b=new B();
a.addB(B);
MyDbContext m=new MyDbContext();
m.As.Add(a);
m.SaveChanges();
C c=new C(a,b);
m.Cs.Add(c);
m.SaveChanges();
}
問題是,當我加入C至的背景下,它會嘗試在上下文中再次添加a和b,這會導致異常,因爲它們已經在其中。這不應該發生。
我該如何解決這個問題?
感謝
不應該有例外。 'a'和'b'只存在一次(每個實體我只看到一個'new''''''''''''''''''''''''''''''''''''''''''''')你會得到什麼例外? – Slauma
我得到一個DatabaseUpdate異常,因爲A的主鍵已經在數據庫中。 (數據庫配置爲DropCreateAlways。) – Fritsie
上面的代碼會得到一個* Update *異常?有沒有顯示的SaveChanges調用? (你可以編輯你的問題來澄清這一點。) – Slauma