C#中MVC开发错误,类型异常

众所周知猫生猫,狗生狗,猫不可能生出狗来。同样的实体是一种强类型关系,经常会因类型写错而报错。无非是一点一点的排除找错,但是ViewModle中,你会去看吗?

有一种错误叫“AutoMapper.AutoMapperMappingException”类型的异常在AutoMapper.dll 中发生,但未在用户代码中进行处理”,也可以叫“Missingtype map configuration or unsupported mapping”,反正就是类型不匹配。

这是StaticContentBll中的一个方法,类型是StaticContent的,但报错的时候,显示的类型是Category类型。纳尼?

        /// <summary>
        /// 查询静态内容(公用)
        /// </summary>
        /// <param name="CategoryID">根据类别查询静态内容(公用)</param>
        /// <returns>返回静态内容ViewModle</returns>
        public List<StaticContentViewModel> QueryStaticContent(StaticContentViewModel enCategory, int pageSize, int pageIndex, out int total )
        {
            //调用底层, 查询StaticContent的集合泛型
            List<StaticContent> listStaticContent = this.CurrentDal.LoadPageItems(pageSize, pageIndex, out total,p => p.CategoryID == enCategory.CategoryID, p => p.TimeStamp, false).ToList();
            //创建转换规则,转换实体
            Mapper.CreateMap<StaticContent, StaticContentViewModel>();
            var listStaticContentVM = Mapper.Map<List<StaticContent>, List<StaticContentViewModel>>(listStaticContent);
            //返回查询结果
            return listStaticContentVM;
        }

最后敲定的错误在ViewModle中。ViewModle的东西一般是从Model直接导出的,包括各属性以及外键,如下:

    /// <summary>
    /// 静态内容表,存放机构设置、单位简介等
    /// </summary>
    [DataContract]
    public partial class StaticContentViewModel
    {
        /// <summary>
        /// 静态内容ID
        /// </summary>
        [DataMember]
        public System.Guid StaticContentID { get; set; }
        /// <summary>
        /// 静态内容题目
        /// </summary>
        [DataMember]
        public string StaticContentTitle { get; set; }
        /// <summary>
        /// 静态内容内容
        /// </summary>
        [DataMember]
        public string StaticContentContent { get; set; }
        /// <summary>
        /// 图片
        /// </summary>
        [DataMember]
        public string Images { get; set; }
        /// <summary>
        /// 时间戳
        /// </summary>
        [DataMember]
        public System.DateTime TimeStamp { get; set; }
        /// <summary>
        /// 添加人ID
        /// </summary>
        [DataMember]
        public System.Guid UserGUID { get; set; }
        /// <summary>
        /// 类别ID
        /// </summary>
        [DataMember]
        public System.Guid CategoryID { get; set; }
        /// <summary>
        /// 导航属性-类别
        /// </summary>
        public virtual CategoryViewModel Category { get; set; }
        /// <summary>
        /// 导航属性-用户信息
        /// </summary>
        public virtual UserInfoViewModel UserInfo { get; set; }
    }

ViewModle中都是业务领域的数据,不应该放外键了,放了外键就等于引入另一个类型,所以最后类型都混了。额我是这么理解的。

时间: 2024-10-14 17:20:26

C#中MVC开发错误,类型异常的相关文章

程序设计中常见的错误类型

常见的错误类型 (1) 语法错误 这种错误类型是无法通过编译的.这种错误是最容易发现和修改的. (2) 逻辑错误 这种错误是都符合语法规范,代码能够通过编译,但是逻辑思维有问题,导致不能得到预期的结果.这种错误往往比较难发现 (3) 开发错误 往往是指开发的时候偏离了用户需求 (4) 运行错误 语法,逻辑,开发方向都是正确的,这种错误往往出现于整个程序的算法有问题.这种算法导致内存泄露,存储空间不足等.所以这个时候需要换一个算法

框架中无效的列类型异常分析

org.springframework.jdbc.UncategorizedSQLException: Error setting null for parameter #5 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLException: 无效的

iOS开发——错误总结&amp;异常捕捉

异常捕捉 1 有时应用崩溃,而日志中的输出信息太少,无法定位问题,这是最头疼的事情,尤其很累的时侯,已经想不起来刚才改过什么了,这就叫做无耐. 2 3 工欲善其事,必先利其器,下面的方法可以给多些信息,让你看到堆栈执行顺序,在哪里崩溃的,也就能大概给个思路,确定问题的症结. 4 5 在 AppDelegate.m 类实现之前加入: 6 7 8 9 void UncaughtExceptionHandler(NSException *exception) { 10 11 // 获取异常相关信息 1

Idea开发环境中,开发springboot类型的项目,如果只引入parent节点,不添加依赖节点,maven是不会加载springboot的任何依赖的

在SpringBoot类型的项目中,我本来是要使用pringBoot,创建一个Console项目,我原本在pom.xml中添加paren节点了,天真的认为不需要再添加其他任何依赖了,可是接下来的1个小时左右,我彻底的承认,我错了,错的很离谱: 参见:基于 Spring Boot 编写控制台程序 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apach

GDI+中发生一般性错误的解决办法(转载)

今天在开发.net引用程序中,需要System.Drawing.Image.Save 创建图片,debug的时候程序一切正常,可是发布到IIS后缺提示出现"GDI+中发生一般性错误"的异常.于是开始"摆渡",并寻找到了解决办法:赋予 NETWORK SERVICE 帐户以写权限. 以下为晚上寻找到的资料: 在开发.NET应用中,使用 System.Drawing.Image.Save 方法而导致"GDI+ 中发生一般性错误"的发生,通常有以下三种

Python错误和异常概念

本文和大家分享的主要是python中常见的错误与异常及其相关处理方式,一起来看看吧,希望对大家学习python有所帮助. 1. 错误和异常的处理方式 1.常见的错误 1. a:NameError 2. if True:SyntaxError 3. f = oepn('1.txt'):IOError 4. 10/0:ZeroDivisionError 5. a = int('d'):ValueError 6. 程序运行中断:KeyboardInterrupt 2.Python-使用try_exce

iOS 开发中常见的错误日志处理

Outline如何获得crash日志如何解析crash日志如何分析crash日志     1. iOS策略相关     2. 常见错误标识     3. 代码bug 一.如何获得crash日志 当一个iOS应用程序崩溃时,系统会创建一份crash日志保存在设备上.这份crash日志记录着应用程序崩溃时的信息,通常包含着每个执行线程的栈调用信息(低内存闪退日志例外),对于开发人员定位问题很有帮助. 如果设备就在身边,可以连接设备,打开Xcode - Window - Organizer,在左侧面板

Erlang中一些错误或者异常的标识

erlang中错误大体分为四种: 1. 编译错误    2. 逻辑错误    3. 运行时错误    4. 用户代码生成的错误 编译错误,主要是编译器检测出的代码语法错误 逻辑错误,是指程序没有完成预期的工作,属于开发人员的问题 运行时错误,是指erlang运行时抛出的错误,比如对非数据类型执行算术运算,erlang运行时会捕获异常,并抛出.在erlang中,这类异常的类型为error 用户自定义错误,是指通过exit/1或者throw/1生成 我们把运行时错误以及用户抛出的错误称为异常(exc

如何定位Android NDK开发中遇到的错误

做android应用的调试,最怕就是报错,crash,看到这篇好文章,记录一下: 转自:http://www.csdn.net/article/2014-12-30/2823366-Locate-Android-NDK Android NDK是什么? Android NDK 是在SDK前面又加上了“原生”二字,即Native Development Kit,因此又被Google称为“NDK”.众所周知,Android程序运行在Dalvik虚拟机中,NDK允许用户使用类似C / C++之类的原生代