C# linq到sql是否能够自动更新外键

C# linq到sql是否能够自动更新外键,c#,linq,C#,Linq,在使用EntitySet处理1:n关系时,我想到了一个问题: 假设我有两个类A和B,我想建立一个a1-->bn关系 在DB级别I上有两个表A和B,其中表B有一个引用列AId和一个FK约束,以确保AId引用表A中记录的主键。然后,我在类A中添加了一个EntitySet,以作为1:n的成员访问多个B记录。ID是自动生成的 到目前为止还不错。但是,当我现在创建一个新的a并将B添加到其实体集中并调用submitChanges时,它将失败,并出现FK冲突,因为B的AId列设置为0 我的问题:当我提交更改时

在使用EntitySet处理1:n关系时,我想到了一个问题:

假设我有两个类A和B,我想建立一个a1-->bn关系

在DB级别I上有两个表A和B,其中表B有一个引用列AId和一个FK约束,以确保AId引用表A中记录的主键。然后,我在类A中添加了一个EntitySet,以作为1:n的成员访问多个B记录。ID是自动生成的

到目前为止还不错。但是,当我现在创建一个新的a并将B添加到其实体集中并调用submitChanges时,它将失败,并出现FK冲突,因为B的AId列设置为0

我的问题:当我提交更改时,LINQtoSQL是否应该自动关心为其实体集中的所有B分配正确的Id?或者我需要自己先插入A,在所有B上相应地设置引用id,然后插入B吗

web上的所有示例都只使用查询—我没有找到任何关于存储1:n关系的示例


Thx和ADVICES

出于好奇,您为什么要使用Linq to SQL而不是实体框架?到目前为止,我们使用的是硬编码SQL语句-Linq to SQL似乎是一种更好的方法,更容易介绍。但我还没有仔细研究实体框架,因为它似乎更复杂。实体框架是Linq to SQL的继承者,它认为直到v2才达到功能对等。它们都以类似的方式工作,EF更灵活、功能更强大,还支持其他DBMS。我强烈建议你先试试EF。