当前位置:编程学习 > C#/ASP.NET >>

InsertOnSubmit 和 select是不是在同个事务里,求解

linq 里面 InsertOnSubmit一条记录后 在没有SubmitChanges之前  执行select 是不是找不到的啊???
同个DataContext 
--------------------编程问答-------------------- 当然了,没有提交到库中去,怎么会查得出来呢 --------------------编程问答--------------------
引用 1 楼 liuqian4243 的回复:
当然了,没有提交到库中去,怎么会查得出来呢


插入表A 2条数据 主键是id  第一条插进去了   然后插入第2条的时候需要select表A判断一下id主键是否已经存在       
如果存在就 执行update  不存在就insert
通常合理的做法 是怎么执行 --------------------编程问答-------------------- 你说的就是通常做法啊

更通常做法是设置ID主键自增,就省去了判断的麻烦了 --------------------编程问答-------------------- SubmitChanges 之前 是存在于内存中的

你应该在此阶段进行相应的操作,然后调用一次 SubmitChanges 即可 --------------------编程问答-------------------- 同一个DataContext,当然能 找到。
你的设计 有问题?? 插入,更新 都是分开的。
有什么理由  判断主键 去操作,举个 应用例子看看。 --------------------编程问答-------------------- 有两种事务,一种是隐形事务,比如一个Submit,另外一种是显式事务,TransactionScope,在未submit之前,是保存在缓存中的,从db中是查不到的。 --------------------编程问答--------------------
引用 4 楼 sandy945 的回复:
SubmitChanges 之前 是存在于内存中的

你应该在此阶段进行相应的操作,然后调用一次 SubmitChanges 即可



++++ --------------------编程问答--------------------
引用 6 楼  的回复:
有两种事务,一种是隐形事务,比如一个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出来了 --------------------编程问答--------------------
引用 4 楼  的回复:
SubmitChanges 之前 是存在于内存中的

你应该在此阶段进行相应的操作,然后调用一次 SubmitChanges 即可


是这样的 --------------------编程问答--------------------
引用 10 楼  的回复:
linq 里面 InsertOnSubmit一条记录后 在没有SubmitChanges之前 执行select 是不是找不到的啊???
同个DataContext  

亲:
这个是找不到的,为什么呢,你听我来跟你说。

Linq to sql 是先把数据提交到上下文中,然后再SubmitChanges才提交到数据库。

也就是说是这样的

内存----》DataContex……

正解!
补充:.NET技术 ,  LINQ
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,