首页 新闻 会员 周边

linq中 向A表插入数据A1返回A1ID供B表用.同一事务中。 怎么取A1ID。

0
悬赏园豆:20 [已解决问题] 解决于 2013-01-28 17:28

如题。

两张表,A表插入一条记录A1,要求返回A1的主键供B表使用。

B表中有一个字段是存放A表记录ID的列,A/B两表肯定是事物提交。

_劍客的主页 _劍客 | 初学一级 | 园豆:94
提问于:2013-01-17 16:51
< >
分享
最佳答案
0

CtripHotelDataContext context = new CtripHotelDataContext(Settings.Default.CtripHotelConnectionString);
context.Connection.Open();
DbTransaction tran = context.Connection.BeginTransaction();
context.Transaction = tran;


context.SubmitChanges();
tran.Commit();

_劍客 | 初学一级 |园豆:94 | 2013-01-28 17:27
其他回答(2)
0

db.tables.max(l=>l.id);

chenping2008 | 园豆:9836 (大侠五级) | 2013-01-17 16:56

不科学吧,这个Id断层的话有不对了、

支持(0) 反对(0) _劍客 | 园豆:94 (初学一级) | 2013-01-21 09:57
0

linq to entity?

savechange时 自动会返回id,直接 取 A1.ID就行

这种 有关系的,不要分开提交,直接一起提交 。

A1 a1=new A1();

a1.B.Add(new B{});

savechange();

收获园豆:20
Qlin | 园豆:2403 (老鸟四级) | 2013-01-17 17:14

不是linq to entity、

这样的:

A1 a1=new A1();

a1.name="a1name";

context.A.InsertOnSubmit(a1);

B b=new B();

b.a1id=a1id;

context.B.InsertOnSubmit(b);

context.SubmitChanges();


a1id是主键,没有SubmitChanges之后,a1id还为生成。

这里A1,B要在一个事务提交

支持(0) 反对(0) _劍客 | 园豆:94 (初学一级) | 2013-01-21 10:03

@_劍客: 

那 建关系了没,A 和B 是什么关系?

如:

A1 a1=new A1();

a1.name="a1name";

B b=new B();

//关系

a1.B.Add(b);

context.A.InsertOnSubmit(a1);

//提交

context.SubmitChanges();

支持(0) 反对(0) Qlin | 园豆:2403 (老鸟四级) | 2013-01-21 10:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册