码迷,mamicode.com
首页 > Windows程序 > 详细

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

时间:2015-06-01 13:21:49      阅读:330      评论:0      收藏:0      [点我收藏+]

标签:

       众所周知猫生猫,狗生狗,猫不可能生出狗来。同样的实体是一种强类型关系,经常会因类型写错而报错。无非是一点一点的排除找错,但是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中都是业务领域的数据,不应该放外键了,放了外键就等于引入另一个类型,所以最后类型都混了。额我是这么理解的。

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

标签:

原文地址:http://blog.csdn.net/u010096526/article/details/46301727

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!