一个Linq to Sql 的关联小问题,搞死人


第一段代码 
1             BookDBLinqDataContext db = new BookDBLinqDataContext();
2 
3             book book1 = new book();
4             book1.name = "book1";
5 
6             BookClass bc = new BookClass();
7 
8             book1.BookClass = bc;
9             db.SubmitChanges();


 第二段代码
1             BookDBLinqDataContext db = new BookDBLinqDataContext();
2 
3             book book1 = new book();
4             book1.name = "book1";
5 
6             BookClass bc = new BookClass();
7 
8             book1.BookclassID = bc.classID;
9             db.SubmitChanges();

这两段代码的功能,我来说下:
都是创建一个book对象book1和一个BookClass对象bc(当然数据库中设置了以BookClassID字段关联)
然后把book1的类别设置为bc,
第一段代码直接将book1的BookClass 属性设置为bc
第二段代码将book1的BookClassID设置为bc的ID
看起来差别不大

可是这两段代码在执行上却有很大的区别,
第一段代码执行完后,数据库中的Book表和BookClass表中都将产生一条记录
而第二段代码执行完后,数据库中的记录不发生改变。


这个看似相似的代码,在执行效果上差别巨大。

这是我的一个项目中的小插曲,花了我5个小时来找这个问题,愚钝啊
还是多仔细学习才行啊
一个小的疏忽,可能会发生很严重的问题

先写到这里,提醒部分兄弟伙
NB的砖家笑笑hang开


原文地址:https://www.cnblogs.com/ywolf123/p/1578897.html