Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# EF 4.1代码优先-多对多-状态不变_C#_Entity Framework_Ef Code First - Fatal编程技术网

C# EF 4.1代码优先-多对多-状态不变

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 =

我有一个多对多的关系,在继续阅读之前,请参阅此处解释的我的场景:

好的,现在我可以通过执行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();
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