entity framework,主从表,事务自增键问题

yingshao 2012-03-29 08:39:33
主表:Product,主键自增键ProductId

从表:Book,主键ProductId

产品添加时,同时向product和book两张表中插入数据,为了不产生冗余数据和错误数据,使用事务。

问题来了,事务中,product.addObject后,不调用savechange,无法获得自增键值。


奇怪的是,有的时候可以,好像在EntityFramwork中设置Product和book表主外键关系。即使没有调用savechange,也能获取到自增键值。


我现在不明白,到底什么时候可以获到,什么时候不可以,有点乱。
...全文
192 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yingshao 2012-03-30
  • 打赏
  • 举报
回复
我是用entity framework,并且用事务来处理
小小农民 2012-03-30
  • 打赏
  • 举报
回复
select scope_identity()
小小农民 2012-03-30
  • 打赏
  • 举报
回复
select max(ProductId) from Product
小小农民 2012-03-30
  • 打赏
  • 举报
回复
select @@ideintity 可获取这个ID

@@ideintity 是 SqlServer 特有的。
而且必须紧跟在 insert 语句之后才能返回有值。
如果调用触发器,触发器也有新增,而且有自增,那返回的是触发器里的自动编号。
最好用 SCOPE_IDENTITY( )。

可以通过别的方式来取得编号,
比如如果表有一个 名称字段,是唯一索引,
那可以通过名称来取自动编号值。

yingshao 2012-03-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

即使没有调用savechange,也能获取到自增键值。
没懂,,
这个是保存啊,,,
[/Quote]

一个事务来处理主从表,我希望没有savechange前,获取主表的自增键放到从表中去啊。

zhou349398998 2012-03-30
  • 打赏
  • 举报
回复
即使没有调用savechange,也能获取到自增键值。
没懂,,
这个是保存啊,,,

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧