如何使用ExecuteStoreQuery从多个表中获取数据

时间:2014-03-08 10:42:59

标签: sql asp.net-mvc-3 entity-framework tsql entity

我的应用程序是在用C#.Net编码的Asp.Net MVC3中。我的问题是我想使用 SQL 查询从数据库获取数据,因为我知道我可以使用以下技术

使用 ExecuteStoreQuery

获取数据的代码
var Complete_Data = db.ExecuteStoreQuery<Mytable>("select * from Mytable").ToList();

我有两个问题

  1. 当数据来自多个表时,如何在var Complete_Data中获取数据(即查询有多个连接)。
  2. 我将动态生成选择列。选择查询列将动态生成。
  3. 以下是示例

    string Field_Formation=string.Empty;
    foreach (var item in My_Parameter_Collection_Logic_Variable)
    {
           Field_Formation+= item.Field_Name + ",";
    }
    

    此处 My_Parameter_Collection_Logic_Variable 是在我的代码中声明的具有特定集合的变量。

     var Complete_Data = db.ExecuteStoreQuery<What_Class_To_Be_Taken_Here>("select" + Field_Formation + "  from My_Tables_With_Multiple_Joins").ToList();
    

    需要建议,是否可以做这样的事情。

2 个答案:

答案 0 :(得分:0)

var Complete_Data = db.ExecuteStoreQuery<**What_Class_To_Be_Taken_Here**>

- 该类必须具有像 Field_Formation 这样的属性。

例如,如果您的选择是:

"SELECT e.idExpense AS ExpenseID, e.idVehicle as VehicleID, d.Date AS Date1  .... join ... where ..."

像这样创建类:

public class ItemExample
{
  private int VehicleID{ get; set; }
  private int ExpenseID{ get; set; }
  private DateTime? Date1  { get; set; }
}

答案 1 :(得分:-1)

您可以使用join编写查询,并从多个表中获取数据。

例如: - var Complete_Data = db.ExecuteStoreQuery(&#34; select * from Table1 as T1 inner join Table2 as T2 on T1.id = T2.Id&#34;)。ToList();

您将获得所有表的所有列,然后您可以使用A.ColumnName或B.ColumnName进行访问。