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);