InsertOnSubmit 和 select是不是在同个事务里,求解
linq 里面 InsertOnSubmit一条记录后 在没有SubmitChanges之前 执行select 是不是找不到的啊???同个DataContext
--------------------编程问答-------------------- 当然了,没有提交到库中去,怎么会查得出来呢 --------------------编程问答--------------------
插入表A 2条数据 主键是id 第一条插进去了 然后插入第2条的时候需要select表A判断一下id主键是否已经存在
如果存在就 执行update 不存在就insert
通常合理的做法 是怎么执行 --------------------编程问答-------------------- 你说的就是通常做法啊
更通常做法是设置ID主键自增,就省去了判断的麻烦了 --------------------编程问答-------------------- SubmitChanges 之前 是存在于内存中的
你应该在此阶段进行相应的操作,然后调用一次 SubmitChanges 即可 --------------------编程问答-------------------- 同一个DataContext,当然能 找到。
你的设计 有问题?? 插入,更新 都是分开的。
有什么理由 判断主键 去操作,举个 应用例子看看。 --------------------编程问答-------------------- 有两种事务,一种是隐形事务,比如一个Submit,另外一种是显式事务,TransactionScope,在未submit之前,是保存在缓存中的,从db中是查不到的。 --------------------编程问答--------------------
++++ --------------------编程问答-------------------- --------------------编程问答-------------------- 对,这样是查不到你添加的数据的,因为你虽然执行了插入操作,但是没将数据提交到数据库,可以这样理解,你执行的插入操作成功了,但是数据会暂时保存在服务器内存中,在没有执行SubmitChanges 操作是,是不会提交到数据库的。 --------------------编程问答-------------------- linq 里面 InsertOnSubmit一条记录后 在没有SubmitChanges之前 执行select 是不是找不到的啊???
同个DataContext
亲:
这个是找不到的,为什么呢,你听我来跟你说。
Linq to sql 是先把数据提交到上下文中,然后再SubmitChanges才提交到数据库。
也就是说是这样的
内存----》DataContext------》SubmitChanges(持久化了)------>现在可以select出来了 --------------------编程问答-------------------- linq 里面 InsertOnSubmit一条记录后 在没有SubmitChanges之前 执行select 是不是找不到的啊???
同个DataContext
亲:你是找不到的
为什么呢?
你听我说:
linq 是先把数据插入到DataContext 然后在SubmitChanges(持久化的)
内存----》DataContext ----》SubmitChanges--》可以select出来了 --------------------编程问答--------------------
是这样的 --------------------编程问答--------------------
正解!
补充:.NET技术 , LINQ