小编典典

插入多对多关系表

sql

简单场景

[ClientTable]: ClientId, ClientName, Phone, Age
[CityTable]: CityID, CityName, Country
[ClientCityTable]: ClientCityID, ClientID, CityID

Client client = new Client("John", 123456789, 40);
City city = new City("NY", USA);
ClientCity clientCity = new ClientCity(client, city);

我应该对每个对象(表)还是仅对clientCity进行InsertOnSubmit?还是没关系?有什么区别?

编辑

我在问我是否应该做

DatabaseDC dc = new DatabaseDC(connectionString);
dc.Client.InsertOnSubmit(client);
dc.City.InsertOnSubmit(city);
dc.ClientCity.InsertOnSubmit(clientCity);
dc.SubmitChanges();

或仅

DatabaseDC dc = new DatabaseDC(connectionString);
dc.ClientCity.InsertOnSubmit(clientCity);//because this object has references to client and city
dc.SubmitChanges();

编辑2

我做了几次尝试,甚至InsertOnSubmit只在上使用client,条目也插入到City和中ClientCity。我应该如何正确做?


阅读 215

收藏
2021-04-15

共1个答案

小编典典

通常,您必须确保链接表在插入之前存在,否则可能会出错(取决于您是否限制了sql表)。

您还可以为插入和更新创建自定义存储过程调用,这些过程可以确保链接表正确。

恕我直言,linq-to-sql非常适合进行复杂的选择,但更新数据库并不那么容易。(我经常看到它会造成严重的性能瓶颈。)

2021-04-15