asp.net – LINQ to SQL – 如何选择特定的列和返回强类型列表
发布时间:2020-12-15 19:21:59 所属栏目:asp.Net 来源:网络整理
导读:我试图使用LINQ to SQL从表中选择几个特定的??列,并返回结果作为强类型的对象列表。 例如: var result = (from a in DataContext.Persons where a.Age 18 select new Person { Name = a.Name,Age = a.Age } ).ToList(); 任何帮助将不胜感激。 它构建正常,
我试图使用LINQ to SQL从表中选择几个特定的??列,并返回结果作为强类型的对象列表。
例如: var result = (from a in DataContext.Persons where a.Age > 18 select new Person { Name = a.Name,Age = a.Age } ).ToList(); 任何帮助将不胜感激。 它构建正常,但当我运行它,我得到的错误。不允许在查询中显式构造实体类型MyEntity。 解决方法
基本上你是做正确的方式。但是,您应该使用DataContext的实例进行查询(DataContext不是一个实例或查询中的类型名称并不明显):
var result = (from a in new DataContext().Persons where a.Age > 18 select new Person { a.Name,a.Age }).ToList(); 显然,Person类是你的LINQ to SQL生成的实体类。如果你只想要一些列,你应该创建自己的类: class PersonInformation { public string Name {get;set;} public int Age {get;set;} } var result = (from a in new DataContext().Persons where a.Age > 18 select new PersonInformation { a.Name,a.Age }).ToList(); 你可以自由交换var与List< PersonInformation>这里不影响任何东西(因为这是编译器做的)。 否则,如果你在本地使用查询,我建议考虑一个匿名类型: var result = (from a in new DataContext().Persons where a.Age > 18 select new { a.Name,a.Age }).ToList(); 注意,在所有这些情况下,结果是静态类型的(它的类型在编译时是已知的)。后一种类型是一个编译器生成的匿名类的列表,类似于我上面写的PersonInformation类。从C#3.0开始,语言中没有动态类型。 更新: 如果您真的要返回List< Person> (这可能是或可能不是最好的事情),你可以这样做: var result = from a in new DataContext().Persons where a.Age > 18 select new { a.Name,a.Age }; List<Person> list = result.AsEnumerable() .Select(o => new Person { Name = o.Name,Age = o.Age }).ToList(); 你也可以合并上面的语句,但为了清楚起见我把它们分开了。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- entity-framework-4.1 – Asp.net MVC 4,如何以相同的形式制
- 调试 ASP.NET Core 2.0 源代码
- asp.net – 多个Application_Start事件触发
- asp.net – 当浏览器在HTTP Request标头中设置“referrer”
- asp.net-mvc – 如何在将model属性传递给局部视图时保持正确
- asp.net – DataMember Emit默认值
- asp.net-mvc – 子文件夹中的控制器
- asp.net-mvc-3 – asp.net mvc 3和elmah.axd – 又是404
- entity-framework – 无法启用 – 迁移.引发System.BadImag
- asp.net-mvc-4 – Web.API和FromBody
推荐文章
站长推荐
- entity-framework – 如何告诉UserManager.FindB
- asp.net – 从Classic ASP调用需要.NET类型的.NE
- asp.net-mvc-3 – 我可以在“区域”编辑器模板中
- asp.net-mvc – 大型Web应用程序中的Windows Wor
- SOAP系列目录
- 学习Asp.Net WebForms或Asp.Net MVC
- 具有Winforms,WPF和ASP.NET自由许可的开源控制库
- asp.net – Visual studio – 在浏览器中查看时使
- asp.net-ajax – Sys.Application.add_load()vs.
- asp.net-mvc-3 – ViewModel做和不做
热点阅读