4

我是 ASP.NET MVC 和实体框架的新手。以前我曾经使用 ADO.NET 数据表和数据集。因此,在单次调用从数据库中获取多个表的场景中,我曾经使用 DataSet。例如

ALTER PROCEDURE [dbo].[SpTest]
As
Begin

    Select * from Table1
    Select * from Table2

End

在 C# 上,我曾经做过

Dataset ds = DAL.GetDataSetBySp("SpTest");
Datatable dt1 = ds.Tables["Table1"];
Datatable dt2 = ds.Tables["Table2"];

现在,如果我想在 Single Db Call 中使用 Entity Framework 的多个表,我该怎么做?

4

1 回答 1

0

你可以这样做,但表中应该有关系:

public class Table1
{
 [Key]
 public int IDCol{ get; set; }
 public string Col2{ get; set; }
}

public class Table2
{
 [Key]
 public int IDCol2{ get; set; }
 public int IDCol{ get; set; }
 public string Col3{ get; set; }
}

public class JoiningTable
{
  public int IDCol1{ get; set; }
  public int IDCol2{ get; set; }
  public string Col2 { get; set; }
  public string Col3 { get; set; }
}

public List<JoiningTable> GetData()
{
 List<JoiningTable> bothTablesData =
      from t in Table1
      join t2 in Table2
      on t.IDCol equals t2.IDCol1 
      select new { IDCol1 = t.IDCol, Col3 = t2.Col3, Col2 = t.Col2 }.ToList<JoiningTable>();

  return bothTablesData;
}
于 2013-06-17T06:22:25.757 回答