Entity Framework中批量更新!

feifan20 2012-06-21 09:48:39
又是一个很幼稚的问题,没办法,初学这东西,只能在这儿献丑了!
Database First可以多一张表中的某一个字段批量更新吗?在网上搜了半天,没有找到我想要的答案?
大家有没有这样的源码啊,贴出来给我瞧瞧吧!
...全文
2002 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
cdboyzb 2012-12-21
  • 打赏
  • 举报
回复
可以不支持ef4.0
wanghui0380 2012-06-21
  • 打赏
  • 举报
回复
我查了一下,实际上有关这块的扩展,老外已经做了

参见:http://weblogs.asp.net/pwelter34/archive/2011/11/29/entity-framework-batch-update-and-future-queries.aspx
q107770540 2012-06-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
问题解决了,发现foreach的效率还是挺高的,如果有什么其它好办法,大家告诉我一下吧!
还有一个问题,EntityFramework插入时,可不可以让它直接返回插入成功的ID?难道我只能写查询,查询最大ID?
[/Quote]
如果数据库主键设置成自增的话,在savechanges()后,直接用 实体对象.主键 即可获得新增的ID
wanghui0380 2012-06-21
  • 打赏
  • 举报
回复
这个功能,最新EF里面用

但vs2010自带的没有。不过自带的也不是没办法解决,EF本身可以执行一条sql语句,所以还是回到老方法上拼接一条sql语句即可

当然如果要更方便的,可以尝试自己写一个扩展方法 Update(Expresion<func<T,bool>> where,expression<func<T,T>> setfunc)

自己解析这个两个表达式,拼接sql后在交给EF执行。

大体调用方式

xx.update(p=>p.id==1,p=>new xx{p.name="修改"});
最后解析拼接一成
update xx set name='修改' where id=1


ps:目前的EF把,where这些玩意都直接和select挂钩的,所以才比较头疼。我更希望微软把各个token做成独立的玩意,where就是where这样更容易啊
宝_爸 2012-06-21
  • 打赏
  • 举报
回复
SaveChanges后,插入的object的ID就是自动生成的ID了。

看这里讨论:

http://topic.csdn.net/u/20120607/15/0ef4a483-1d86-47d6-a9f7-bb9b29c6df42.html
宝_爸 2012-06-21
  • 打赏
  • 举报
回复
好啊,接分了。
全部插入后,才调用SaveChanges
feifan20 2012-06-21
  • 打赏
  • 举报
回复
问题解决了,发现foreach的效率还是挺高的,如果有什么其它好办法,大家告诉我一下吧!
还有一个问题,EntityFramework插入时,可不可以让它直接返回插入成功的ID?难道我只能写查询,查询最大ID?
wanghui0380 2012-06-21
  • 打赏
  • 举报
回复
那文章已经告诉你了,他是一个扩展,需要你下载安装的

下载地址
•NuGet: http://nuget.org/List/Packages/EntityFramework.Extended
•Source: http://github.com/loresoft/EntityFramework.Extended

安装方式
PM> Install-Package EntityFramework.Extended
feifan20 2012-06-21
  • 打赏
  • 举报
回复
Quote=引用 6 楼 的回复:]
我查了一下,实际上有关这块的扩展,老外已经做了

参见:http://weblogs.asp.net/pwelter34/archive/2011/11/29/entity-framework-batch-update-and-future-queries.aspx
[/Quote]


context.Tasks.Update(
t => t.StatusId == 1,
t => new Task {StatusId = 2});

这儿的这个Update是哪儿来的呢?我写Update报错,这是什么问题啊?

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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