说说在MVC开发中,遇到的错误及解决方法(本文章是我在实际开发中总结出来的,希望对您有帮助)-阿里云开发者社区

开发者社区> mcy247> 正文

说说在MVC开发中,遇到的错误及解决方法(本文章是我在实际开发中总结出来的,希望对您有帮助)

简介:
+关注继续查看

前提:数据底层,使用的是MVC架构,对于数据表中的状态及相关字段,采用了枚举型进行对应

1 序列中不包含任何元素 
  解决:将Single()改为DefaultOrSingle()

2 序列包含一个以上的元素 
  解决:很多情况都是原始数据的问题

3 不能在已使用的实体上添加新实体 
4 Duplicate key is already , 
  3,4的解决为:用  base._db.ExecuteCommand()进行SQL语句的重写,

不要用LINQ自带的insert,就不会出现错误了

5  未将对象引用设置到对象的实例。 值不能为空。参数名: source。 
   解决:  this.iProduct_ProductFilesRepository.Insert(_entity.Product_ProductFile.Cast<Entity.IDataEntity>().ToList());,当遇到将list实体类型换为接口list规范时,应该用.Cast<接口类型>().ToList()

6 查询参数不能为“System.Object”类型。 
解决:这是因为在LINQ的ExecuteCommand不理解空值,当我们传递的参数为 null 时,就会出现这个问题,解决方法是,在为实体加string.empty这个空值属性

7  Incorrect syntax near '@p0'. 
解决:查看我们的SQL代码,被编译成了什么,可能是多个括号之类的。如:delete from users where (userid={0},这很明显是不对的,哈哈

8 不支持SQL的转化 
   解决1,看看是否用了枚举类型,如果用了,应该先把IQueryable进行ToList,得到真正的数据后才能进行判断 
   解决2,请看你的原始数据,很有可以是数据问题 
   解决3,请看程序代码的关联表查询,很可能是它没有找出数据的问题

9  未将对象引用设置到对象的实例。 
解决:查看数据库向数据实体赋值时,枚举类型的字段是否为null了,如果为null,就会出错

10    查询包含对不同数据上下文上所定义项的引用。 
解决:查看底层工厂建立是否返回datacontext有问题,是否为空了。

11    枚举在LINQ中引发的异常:不支持SQL转换 
    当枚举使用字符名称,没有数据,然它的数值存储在数据表中时,我们在返回数据时,必须在ToList()才行,否则就会出现这种问题 
    例如: 
     /// <summary> 
     /// 以下是一个积分类型的枚举,一种类型对应数据表中同样类型的一个数值 
     /// </summary> 
   public enum PrestigeTypeCode 
    { 
           IAsk_Question, 
            IAsk_Answer, 
  }

  //表据表如下: 
ID    描述        数值    枚举名称 
1   提问           1    IAsk_Question 
2   回答           1    IAsk_Answer

结论:当我们通过枚举去从数据库(SQLSERVer里)取数值时,必须要把结果集ToList()才行,如代码: 
int value = new PrestigeTypesRepository().GetPrestigeTypes().ToList().Where(item => item.PrestigeTypeCode == prestigeTypeCode).Single().Amount; 
如果,枚举的值,在枚举元素里读上,就不用去tolist()了

12 不能将 Null 值赋给类型为 System.Int32 (不可为 null 的值类型)的成员 
解决:应该是数据的问题,Int类型的SQL表中出来了NULL值,或者是由于枚举类型转换失败的原因

本文转自博客园张占岭(仓储大叔)的博客,原文链接:说说在MVC开发中,遇到的错误及解决方法(本文章是我在实际开发中总结出来的,希望对您有帮助),如需转载请自行联系原博主。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
[Android]对MVC和MVP的总结
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5036289.html 经历过的客户端的架构分为这么几个阶段: 第一阶段 使用传统的MVC,其中的View,对应的是各种Layout布局文件,但是这些布局文件中...
550 0
Maven项目中无法找到 xml文件或 properties文件等配置文件的解决方法
在初次使用 Maven 项目的时候总是会遇到一些比较奇异的问题 就比如说总是会报错:项目里的 **.xml 或 **.properties 配置文件无法找到 这时你去项目中的 classes 生成文件(target 或 out)中找,确实这些配置文件没有被编译 这是因为 ...
1423 0
菜鸟入门【ASP.NET Core】15:MVC开发:ReturnUrl实现、Model后端验证 、Model前端验证
ReturnUrl实现 我们要实现returnUrl,我们需要在注册(Register)方法中接收传进的returnUrl并给它默认值null,然后将它保存在ViewData里面 然后我们定义一个内部方法来判断跳转returnUrl //内部跳转 private IActionR...
1723 0
SSH 文件上传错误:encountered 1 errors during the transfer终极解决方法:
以下方法简单排序,从简单到复杂: 法一:在SSH Secure File Transfer(上传文件那个),打开“Operation”菜单,打开“File Transfer Mode”子菜单,再选择“Binary”,OK! 法二:把服务器上同名文件删掉再传 法三:如果文件在桌面上,将要上传的文件复制到其它分区,再上传! 法四:到 http://winscp.
831 0
C# .net中cookie值为中文时的乱码解决方法
一.cookie的名称或子cookie的名称不能为中文,否则无法获得cookie 这个好办,名称不用中文即可 二.cookie的值为中文时候,取cookie的值会出现乱码 解决办法:存取cookie时候先解码和编码 存cookie,进行编码: cookie.
830 0
+关注
mcy247
做自己的太阳 无需凭借谁的光
1070
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载