C# EF 4.1代码优先-多对多-状态不变
我有一个多对多的关系,在继续阅读之前,请参阅此处解释的我的场景: 好的,现在我可以通过执行Slauma提出的解决方案(见下文)将条目添加到相应的表中,但我不想在其中一个表(表B)中插入任何条目,因为它有固定的条目(只读)。那么如何实现呢?我将其标记为未更改,但它不起作用 我做了以下工作:C# EF 4.1代码优先-多对多-状态不变,c#,entity-framework,ef-code-first,C#,Entity Framework,Ef Code First,我有一个多对多的关系,在继续阅读之前,请参阅此处解释的我的场景: 好的,现在我可以通过执行Slauma提出的解决方案(见下文)将条目添加到相应的表中,但我不想在其中一个表(表B)中插入任何条目,因为它有固定的条目(只读)。那么如何实现呢?我将其标记为未更改,但它不起作用 我做了以下工作: A a = new A() { PropertyA1 = something_1, PropertyA2 = something_2, PropertyA3 =
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();
A A=newa(){PropertyA1=something\u 1,
PropertyA2=something_2,
PropertyA3=某物3};
a、 Bs=新列表();
foreach(…)
{
B=新的B(){….}
a、 Bs.添加(b);
}
上下文A.添加(A);
//下面的循环不工作
foreach(context.ChangeTracker.Entries()中的var条目)
.Where(e=>e.State==EntityState.Added&&e.Entity是SomeEntity))
{
entry.State=EntityState.Unchanged;
}
SaveChanges();
如果我删除了前面的foreach,信息会正确地添加到表A和链接表C中,但也会添加到B中,我不希望信息添加到B中
有什么想法吗?你在哪里
B b = new B() { ..... }
您必须取而代之的是从数据库中获取现有的B
,并将其添加到a.Bs