LINQ to Entities查询中无法构造实体或复杂类型“xxxx_DataModel.paytypes”

时间:2015-12-09 10:19:11

标签: c# entity-framework linq

使用ToObservableCollection()时出现以下错误任何想法为何?

EntityFramework.SqlServer.dll中发生了'System.NotSupportedException'类型的异常,但未在用户代码中处理

附加信息:无法在LINQ to Entities查询中构造实体或复杂类型“xxxx_DataModel.paytypes”。

var payTypes = (from payTypeTbl in Db.paytypes
                       where payTypeTbl.bActive == true
                       select new paytypes
                       {
                           iPayTypeId = payTypeTbl.iPayTypeId,
                           sImg = @"img\" + payTypeTbl.sImg,
                           sPayTypeName = payTypeTbl.sPayTypeName,
                       }
                              ).ToObservableCollection();



public static class Extensions
    {
        public static ObservableCollection<T> ToObservableCollection<T>(this IEnumerable<T> col)
        {
            return new ObservableCollection<T>(col);
        }


    }

2 个答案:

答案 0 :(得分:0)

从您的代码中看起来好像数据库中的某个数据类型已定义为Image。据我所知,EF不支持此数据类型,这就是您收到此错误的原因。

答案 1 :(得分:0)

好的,解决方案就是这样。有没有比这更短的方式?或者每次我都要经历这种重复写作的痛苦?

 PayType = (from payTypeTbl in Db.paytypes
                           where payTypeTbl.bActive == true
                           select new
                           {
                               iPayTypeId = payTypeTbl.iPayTypeId,
                               sImg = payTypeTbl.sImg,
                               sPayTypeName = payTypeTbl.sPayTypeName,

                           }).ToList().Select(x => new paytypes {
                               iPayTypeId = x.iPayTypeId,
                               sImg = @"img\" + x.sImg,
                               sPayTypeName = x.sPayTypeName,
                           } ).ToObservableCollection();