哪个ORM支持SQL像批量插入/更新/删除:哪个.Net ORM支持sql如批量插入/更新/删除?
var user=new UserInfoFields();
var update=user.Update().Set
(
user.Field1=1,
user.Field2="xxxx"
).Where(user.Name=="Jim" && user.Enable==true);
update.Excute();
相应的T-SQL是:
UPDATE UserInfo
SET
Field1=1,
Field2="xxxx"
WHERE Name='Jim' and Enable=1
(大多数,如果不是全部的话)ORM的**不是**被设计来处理批量操作。如果你想批量操作,使用合适的批量组件,或者直接在你的数据库中执行(例如使用存储的proc或类似的东西) – 2011-02-24 15:24:56
@marc_s:谢谢你的回答。我同意你关于ORM不是为了处理批量操作而设计的,但是如果我们需要支持多种类型的数据库,这种方式是非常有用的。我发现LLBLgen支持像这样的操作,但是他的API不流利。 – guaike 2011-02-24 15:36:18
是的,这很方便 - 而且很好的做法。对于这些情况,我通常建议将函数封装到存储过程中,并从您的ORM执行该存储过程(例如'DataContext' for Linq-to-SQL或类似方法) – 2011-02-24 15:37:54