linq to sql 如何判断数据操作成功?

qingyun163 2008-10-06 01:31:53
以往不用linq to sql,是根据返回受影响的行数来判断数据操作是否成功,那么linq to sql中怎么办呢?譬如这个:
db.Users.InsertOnSubmit(users);
db.SubmitChanges();

这样提交后,如何知道成功了呢?注意,我不想用try...catch的方式,请赐教!
...全文
927 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dotnetsong 2008-10-15
  • 打赏
  • 举报
回复
linq有没有调试环境啊,像sql 查询分析器那样的
chenmingliang 2008-10-14
  • 打赏
  • 举报
回复
只能忽略不计了
qingyun163 2008-10-06
  • 打赏
  • 举报
回复
但是,如果我是一个批量操作,比如批量删除,我如何知道成功删除了多少条呢?
xyq1986 2008-10-06
  • 打赏
  • 举报
回复
没异常就成功了
brallow 2008-10-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 qingyun163 的回复:]
微软欠考虑,我觉得应该返回受影响的行数,这个很有用的。
[/Quote]
我倒不这样认为。事实上,如果执行成功,那么返回的行数完全有可能是0-无穷大。
比如你没有任何变更时,SubmitChanges将直接更新成功,那么你如何区分呢?
事实上 SubmitChanges用于表示处理结果的方法就是通过抛出不同类型的异常,你自己不使用而已。

至于你说的影响的行数,因为在DataContext中本身已经没有了关系数据库的概念,而是.NET对象的集合,所以不存在有“影响的行数”一说。
qingyun163 2008-10-06
  • 打赏
  • 举报
回复
微软欠考虑,我觉得应该返回受影响的行数,这个很有用的。
brallow 2008-10-06
  • 打赏
  • 举报
回复
执行提交时没有异常即是处理成功。
没有别的办法,你可以自己再补充一个方法到DataContext类中形如:

public static class DataContextPlus
{
public static bool SubmitChangesWithReturnValue(this DataContext t)
{
try
{
t.SubmitChanges();
return true;
}
catch
{
return false;
}
}
}

以后凡是使用SubmitChanges的地方你都可以使用SubmitChangesWithReturnValue,根据返回值是否为Bool来判断是否执行成功。
不过这绝对不是一个值得推荐的方案。

8,497

社区成员

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

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