0

简单场景

[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只使用 on client,条目也插入到Cityand ClientCity。我应该如何正确地做到这一点?

4

2 回答 2

1

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

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

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

于 2011-11-06T20:43:50.393 回答
1

从结果来看,真的没关系。两种方式都是正确的。

第二种的优点(只有一个insertonsubmit)

  • 清洁器
  • 更少的代码

第一个的优点

  • 对于刚接触 Linq2sql 的人来说更容易阅读/理解
  • 此外,如果没有正确的参考,插入将被完成(或者这是一个缺点?,取决于你)

正如您已经发现的那样,结果是相同的。

于 2011-11-07T08:45:37.140 回答