【问题标题】:Querying against multiple columns in Entity Framework 6在 Entity Framework 6 中查询多个列
【发布时间】:2014-03-15 21:33:04
【问题描述】:

我正在尝试对 EF 6 中的多个列执行查询(在 VS 2013 上使用 C# WPF),我需要选择某些列的所有字段。我真的不太了解,但我已经尝试过使用 Linq 来做这件事,但它似乎没有那个功能,所以我选择了 <context>.Database.SqlQuery<string>(query),但我不清楚我应该如何处理它返回的内容。查询很简单,例如"SELECT column1,column2 FROM table"

Linq 可以做到吗?如何?对于SqlQuery() 的情况,我应该如何处理它的结果,因为它的大部分列都是字符串格式的?

【问题讨论】:

  • 是的,可以使用 linq:context.Table.Select(x => new { x.Column1, x.Column2 });
  • 嘿! MarcinJuraszek,感谢您的快速回答。我该如何处理?我放了 ToArray() 但我想它应该是一个 IEnumerable 什么的,但它说 AnonymousType#1
  • @MiloGP 到目前为止你做了什么??可以发一些代码吗??
  • 我做了这个,我不太确定,但类似的东西以前对我有用。 string[] lista = (db.tbl_pacientes.Select(x => new { x.pac_pk_id, x.pac_nombre1 })).ToArray();
  • @MiloGP 如果您找到适合您的东西,请发布答案。

标签: c# sql wpf linq entity-framework-6


【解决方案1】:

@MiloGP 是的,您可以通过 LINQ 使用 Lambda 表达式来做到这一点

这里是一个例子:

表employee(emp_id,emp_name,emp_dob,emp_address,emp_reference)中有5列

和我的 DBContext 名称:EmployeeEntities;

我试图获取 emp_name 和 emp_address

List<employee> = EmployeeEntities.employees.select( x => new { x.emp_name, x.emp_address }).ToList();

如果你需要获取某人的价值,例如emp_id == 13458

List<employee> = EmployeeEntities.employees.Select( x => new { x.emp_name, x.emp_address }).Where( y => y.emp_id == 13458).ToList();

【讨论】:

  • 谢谢!就是这个方法。但我实际上试图做的是获取所有值而无需指定所有字段名称,因为项目的某些表中有很多字段。但我想这是不可能的。是吗?
  • 不,这是可能的。要获取所有字段,您必须将代码更改为以下。 List = EmployeeEntities.employees.ToList();它将得到所有员工。如果需要获取某人的详细信息,请使用以下内容。 List = EmployeeEntities.employees.Where(x=>x.emp_id == 13458).ToList();
猜你喜欢
  • 2020-05-07
  • 2015-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多