2013-05-19 42 views
0

我有一个多对多的关系,看我的情况继续阅读之前,这里解释: EF 4.1 Code First: Many to ManyEF 4.1代码第一 - 多对多 - 基本没有变化

好了,现在我可以在条目被添加到相应的表做Slauma提出的解决方案(见下文),但我不想插入任何一个表(表B)的条目,因为它有固定条目(只读)。那么如何实现呢?我将其标记为未更改,但不起作用。

我做到以下几点:

A a = new A() { PropertyA1 = something_1, 
      PropertyA2 = something_2, 
      PropertyA3 = something_3 }; 
a.Bs = new List<B>(); 

foreach (.....) 
{ 
    B b = new B() { ..... } 
    a.Bs.Add(b); 
} 

context.A.Add(a); 

// Below loop is not working 
foreach (var entry in context.ChangeTracker.Entries() 
     .Where(e => e.State == EntityState.Added && e.Entity is SomeEntity)) 
{ 
     entry.State = EntityState.Unchanged; 
} 

context.SaveChanges(); 

如果我删除以前的foreach,信息正确添加到表A和链路表C,而且在B和我做B.添加任何想要的信息

任何想法?

回答

1

地方,你

B b = new B() { ..... } 

你必须代替从数据库中获取现有B并添加到a.Bs

+0

太好了!现在它工作。非常感谢! – user1624552