C#中db.SaveChanges()的返回值问题

coderk2014 2016-10-27 11:10:07
首先C#中db.SaveChanges()的返回值为影响的行数。

我一开始是通过返回值大于0来表示操作成功,否则表示操作失败,如下代码:
C# code

int r = db.SaveChanges();
if (r > 0)
{
result = true;
}
else
{
result-false;
}

后来我修改数据时(比如修改用户对象信息),我特意没有改动任何数据,直接点击修改,然后调试,
发现这个时候的返回值为0,。
这个情况的返回值为0,虽然表示没有影响行数,但是不能说操作失败吧!

所以我就有点疑问,我是通过判断SaveChanges返回值是否>=0来表示成功与否呢,还是通过有无异常来判断是否成功呢?
希望大神们给予解答
...全文
3128 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
coderk2014 2016-10-27
  • 打赏
  • 举报
回复
引用 3 楼 D56233577 的回复:
同1楼,应该用异常。
谢谢
coderk2014 2016-10-27
  • 打赏
  • 举报
回复
引用 2 楼 sp1234 的回复:
另外,所谓“result=true”、"result=false“也是画蛇添足的东西。如果程序异常,那么正规地抛出异常就行了。 只有那些初学 c 语言的人才扯什么“返回 0、1 来表示执行结果”这种设计,因为它们所用的语言工具,根本就没有异常机制的框架!
谢谢
coderk2014 2016-10-27
  • 打赏
  • 举报
回复
引用 楼主 coderK2014 的回复:
首先C#中db.SaveChanges()的返回值为影响的行数。 我一开始是通过返回值大于0来表示操作成功,否则表示操作失败,如下代码: C# code

int r = db.SaveChanges();
 if (r > 0)
{
        result = true;
 }
else
{
        result-false;
}
后来我修改数据时(比如修改用户对象信息),我特意没有改动任何数据,直接点击修改,然后调试, 发现这个时候的返回值为0,。 这个情况的返回值为0,虽然表示没有影响行数,但是不能说操作失败吧! 所以我就有点疑问,我是通过判断SaveChanges返回值是否>=0来表示成功与否呢,还是通过有无异常来判断是否成功呢? 希望大神们给予解答
谢谢
D56233577 2016-10-27
  • 打赏
  • 举报
回复
同1楼,应该用异常。
  • 打赏
  • 举报
回复
另外,所谓“result=true”、"result=false“也是画蛇添足的东西。如果程序异常,那么正规地抛出异常就行了。 只有那些初学 c 语言的人才扯什么“返回 0、1 来表示执行结果”这种设计,因为它们所用的语言工具,根本就没有异常机制的框架!
  • 打赏
  • 举报
回复
当然是用“异常”来判断是否失败。谁告诉你用影响行数来判断sql语句执行是否失败的的?
课程通过实际项目融入常用开发技术架构,讲授风格独特,提供详细上课日志及答疑,赠送配套的项目架构源码注释详细清晰且表达通俗,均能直接在实际项目应用,正真的物超所值,价格实惠任务作业:综合运用《C#/.Net企业级系统架构设计实战精讲教程》课程所学知识技能设计一个学生成绩管理系统的架构。要求:1.系统基于MVC的三层架构,各层单独建不同的解决方案文件夹。2.采用Model First开发方式,设计架构时只需要设计学生表(TbStudent)和课程表(TbCourse)。学生表必须有的字段是ID、stuName、age;课程表必须有的字段是ID、courseName、content。3.数据访问层采用Entity Framework或NHibernate来实现,必须封装对上述表的增删改查方法。4.必须依赖接口编程,也就是必须要有数据访问层的接口层、业务逻辑层的接口层等接口层。层层之间必须减少依赖,可以通过简单工厂或抽象工厂。5.至少采用简单工厂、抽象工厂、Spring.Net等技术的2种来减少层与层之间的依赖等。6.封装出DbSession类,让它拥有所有Dal层实例和SaveChanges方法。7.设计出数据访问层及业务逻辑层主要类的T4模板,以便实体增加时自动生成相应的类。8.表现层要设计相关的控制器和视图来验证设计的系统架构代码的正确性,必须含有验证增删改查的方法。9.开发平台一定要是Visual Studio平台,采用C#开发语言,数据库为SQL Server。10.提交整个系统架构的源文件及生成的数据库文件。(注意: 作业需写在CSDN博客,请把作业链接贴在评论区,老师会定期逐个批改~~)

62,052

社区成员

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

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

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

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