C# 添加到关联表而不加载
我有三个表:C# 添加到关联表而不加载,c#,entity-framework,C#,Entity Framework,我有三个表:A、B,以及一个关联表AB。由于实体框架不会为关联表创建单独的实体,因此只会创建实体a和B 现在,我想将Bs添加到A实体,但我不想从数据库中加载所有这些B实体,因为我知道要添加到A的B实体的Id。我试着做到以下几点: A.Bs.Add( new B(){ Id = 100 } ); 问题是,当没有B实体的Id为100时,EF不会因为外键约束而引发异常,而是创建一个B实体的Id为100,然后将其添加到关联表中 如何防止创建新的B?它看起来像是在Add操
A
、B
,以及一个关联表AB
。由于实体框架不会为关联表创建单独的实体,因此只会创建实体a
和B
现在,我想将B
s添加到A
实体,但我不想从数据库中加载所有这些B
实体,因为我知道要添加到A
的B
实体的Id。我试着做到以下几点:
A.Bs.Add(
new B(){
Id = 100
}
);
问题是,当没有B
实体的Id
为100
时,EF不会因为外键约束而引发异常,而是创建一个B
实体的Id
为100
,然后将其添加到关联表中
如何防止创建新的
B
?它看起来像是在Add操作之外创建B对象,然后将其附加到上下文或将其状态标记为“未更改”即可根据需要工作
var b = new B(){
Id = 100
};
context.B.Attach(b);
//OR
context.Entry(b).State = EntityState.Unchanged;
A.Bs.Add(b);
看起来,在Add操作之外创建B对象并将其附加到上下文或将其状态标记为“Unchanged”可以根据需要工作
var b = new B(){
Id = 100
};
context.B.Attach(b);
//OR
context.Entry(b).State = EntityState.Unchanged;
A.Bs.Add(b);