4

ASP.NET MVC 및 Entity 프레임 워크를 처음 사용합니다. 이전에는 ADO.NET Datatables 및 DataSets를 사용했습니다. 따라서 단일 호출에서 데이터베이스에서 여러 테이블을 가져 오는 시나리오에서는 DataSet을 사용했습니다. 예 : 엔터티 프레임 워크에서 단일 db 호출로 여러 테이블 가져 오기

ALTER PROCEDURE [dbo].[SpTest] 
As 
Begin 

    Select * from Table1 
    Select * from Table2 

End 

그리고 C에 #

, 나는 내가 어떻게 할 수있는, 지금은 단일 DB 통화에서 엔티티 프레임 워크와 여러 테이블을 원하는 경우에
Dataset ds = DAL.GetDataSetBySp("SpTest"); 
Datatable dt1 = ds.Tables["Table1"]; 
Datatable dt2 = ds.Tables["Table2"]; 

을 수행하는 데 사용?

+0

대답은 간단하다 : 당신은 할 수 없습니다. EF에는 NHibernate의 멀티 쿼리와 같은 것이 없습니다. 하지만 네게 필요한 걸 물어봐도 될까? 어쩌면 당신의 문제는 다른 방식으로 해결 될 수 있습니다. –

+0

내 응용 프로그램에는 홈 페이지에 대시 보드가 있습니다. 이것이 실제로 전체 애플리케이션의 요약입니다. 데이터가 다른 테이블에서옵니다. 일부 테이블은 서로 관련이 있고 일부 테이블은 서로 관련이 없습니다. 내가 가진 문제는 서로 어떤 관계도없는 테이블에 있습니다. –

+0

각 테이블의 데이터를 동일한 행 구조로 짜낼 수 있다면 가장 가까운 것은 'Union'을 사용하는 것입니다. –

답변

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; 
} 
+0

두 개의 테이블은 전혀 문제가되지 않습니다. 심지어 조인 테이블을 만들 필요가 없습니다. 나는 관계가없는 테이블에 대해 묻고 있습니다. –