首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

(select new{}).ToList<T>();该怎么解决

2012-03-01 
(select new{}).ToListT()C# code public ListT Graves_QueryPlanViewT(string areaId) where T:ne

(select new{}).ToList<T>();

C# code
 public List<T> Graves_QueryPlanView<T>(string areaId) where T:new()        {            TombDBContext db = new TombDBContext();            var query = from s in db.SubArea                         join p in db.subAreaPosition                         on s.Id equals p.FSubArea into temp                         from p in temp.DefaultIfEmpty()                         where s.FareaId == areaId                         select new                         {                             s.Id,           //区域编号                             s.SubName,      //区域名称                             s.FareaId,      //大区编号                             posId = (p == null ? 0 : p.pId), //位置编号                             posLeft = (p == null ? 0 : p.pLeft), //左距离                         };                        return query.ToList<T>();  //错误    5    实例参数: 无法从“System.Linq.IQueryable<AnonymousType#1>”转换为“System.Linq.ParallelQuery<T>”    F:\projects\TombPrj\TombDAL\GraveService.cs    346    20    TombDAL              }private void dd(){List<PlanView> plans = Graves_QueryPlanView<PlanView>("2001");}

这么写是有问题的 PlanView是根据select new 里面属性写滴个类 如果我要ToList 请问该如何写捏。 目的是返回类型不是匿名类型 方便读取 是不是有更好的方法。

[解决办法]
不用匿名类型,就定义一个类型,或者动态类型。
[解决办法]
定义一个接口
C# code
public interface IArea{    int Id { get; set; }    string SubName { get; set; }    int FareaId { get; set; }    int ParentId { get; set; }    int Left { get; set; }}
[解决办法]
select new T {}

热点排行