简单场景
[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
。我该怎么做呢?
答案 0 :(得分:1)
通常,您必须确保在插入之前存在链接表,否则您可能会收到错误(取决于您是否限制了sql表)。
您还可以为插入和更新创建自定义存储过程调用,这些过程可以确保链接表是正确的。
IMHO linq-to-sql适用于复杂的选择但不易于更新数据库。 (我经常看到它会造成严重的性能瓶颈。)
答案 1 :(得分:1)
从结果来看,这无关紧要。两种方式都是正确的。
第二个的优点(只有一个insertonsubmit)
第一个的好处
正如您已经发现的那样,结果是一样的。