zoukankan      html  css  js  c++  java
  • 说说在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值,或者是由于枚举类型转换失败的原因

  • 相关阅读:
    SaltStack概述及安装
    Zabbix高可用
    Zabbix数据库表结构
    asp select count(*) 用 open还是excute
    asp+jquery+ajax,asp后台程序执行不正常
    aspupload ,在winows server 2008 下无法使用
    jquery 如何使用innerHTML
    thinkphp的select和find的区别(转)
    centos安装PHP-pdo支持pdo
    Excel 2007 打开 UTF-8 编码 CSV 文件的乱码BUG
  • 原文地址:https://www.cnblogs.com/lori/p/2109817.html
Copyright © 2011-2022 走看看