说说在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开发中,遇到的错误及解决方法(本文章是我在实际开发中总结出来的,希望对您有帮助),如需转载请自行联系原博主。

目录
相关文章
|
1月前
|
JSON 前端开发 Java
Springboot mvc开发之Rest风格及RESTful简化开发案例
Springboot mvc开发之Rest风格及RESTful简化开发案例
27 2
|
2月前
|
存储 JSON 前端开发
利用Spring MVC开发程序2
利用Spring MVC开发程序
32 1
|
2月前
|
设计模式 存储 前端开发
Java的mvc设计模式在web开发中应用
Java的mvc设计模式在web开发中应用
|
2月前
|
JavaScript Java 测试技术
基于springboot+vue.js的基于mvc的高校办公室行政事务管理系统附带文章和源代码设计说明文档ppt
基于springboot+vue.js的基于mvc的高校办公室行政事务管理系统附带文章和源代码设计说明文档ppt
16 0
|
2月前
|
设计模式 JSON 前端开发
利用Spring MVC开发程序1
利用Spring MVC开发程序
31 0
|
2月前
|
存储 设计模式 前端开发
怎么根据MVC开发规则进行开发
MVC开发规则,也称为MVC设计模式,是软件工程中一种常用的架构模式,用于将应用程序划分为三个主要组成部分:模型(Model)、视图(View)和控制器(Controller)。这种架构模式有助于将应用程序的逻辑、数据和用户界面分离,使代码更加清晰、可维护,并且提高了应用程序的灵活性。
43 2
|
2月前
|
存储 前端开发 Java
理解MVC架构模式:Java Web开发的设计理念
【4月更文挑战第3天】MVC架构模式在Web开发中广泛应用于构建可维护和扩展的应用。它将应用程序分为模型、视图和控制器三部分,增强代码模块化和重用。模型处理数据逻辑,视图负责用户界面,而控制器协调二者。MVC优点包括高内聚、低耦合、易于测试、扩展和维护。在Java Web开发中,可通过Servlet、JSP或Spring框架实现MVC。理解并运用MVC是Java Web开发者的关键技能。
理解MVC架构模式:Java Web开发的设计理念
|
2月前
|
设计模式 存储 前端开发
Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式
Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式
|
2月前
|
设计模式 存储 前端开发
Java Web开发中MVC设计模式的实现与解析
Java Web开发中MVC设计模式的实现与解析
|
2月前
|
JSON 前端开发 Java
Spring MVC响应结合RESTful风格开发,打造具有强大功能和良好体验的Web应用!
Spring MVC响应结合RESTful风格开发,打造具有强大功能和良好体验的Web应用!