使用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);
}
}
答案 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();