내보기에 표시 할 데이터에 대한 ViewModel을 만들려고합니다. 문제는 표시되는 데이터가 2 개의 데이터베이스와 각각의 여러 테이블에 분산되어 있다는 것입니다. 나는 당신이 여러 문맥에서 Linq 쿼리에 합류 할 수 없다는 것을 읽었으며 이해하기 쉽다. 또한 나는 EF5에서 Code-First를 사용하여 Stored Procedures를 사용할 수 없다는 것을 읽었다. Linq가 하나의 ViewModel에 쿼리하고 결합하려고합니다 ... 어떻게해야하는지 모르겠습니다.여러 컨텍스트에서 LINQ 쿼리에 가입
여기 내 LINQ 쿼리의 :
var csdContext = new CSDContext(CustomerCode);
var masterContext = new MasterContext();
//Only returns 1 row - which is what we want.
List<Site> sites = (from s in csdContext.Sites
join sa in csdContext.SiteAddresses
on s.SiteID equals sa.SiteID
join a in csdContext.Addresses
on sa.AddressID equals a.AddressID
join spv in csdContext.SiteProductVersions
on s.SiteID equals spv.ProductVersionID
where s.SiteID == id
select s).ToList();
//List
List<States> states = (from s in masterContext.StatesTable
select s).ToList();
내 뷰 모델은 다음과 같습니다 : 기본적으로
public class SiteDetailsViewModel
{
public string Address { get; set; }
public string Address2 { get; set; }
public string City { get; set; }
public string StateCode { get; set; }
public string ZipCode { get; set; }
public string OfficePhone { get; set; }
public string MobilePhone { get; set; }
public string AlternativePhone { get; set; }
public int ProductVersionID { get; set; }
}
, 나는이 테이블에서 다음 데이터를 필요
csdContext이 -
주소를 주소
주소 2
도시
우편 번호
csdContext - 사이트
OfficePhone과
모바일 폰
AlternativePhone
csdContext - SiteProductVersions
ProductVersionID
masterContext - 미국
StateCode 여기
은 테이블이 SQL에 가입하는 방법은
:
SELECT csd_a.Address, csd_a.Address2, csd_a.City, mstr_st.StateCode, csd_a.ZipCode, csd_s.OfficePhone, csd_s.MobilePhone,
csd_s.AlternativePhone, csd_spv.ProductVersionID
FROM CSD.dbo.Sites AS csd_s
INNER JOIN CSD.dbo.SiteAddress AS csd_sa ON csd_sa.SiteID = csd_s.SiteID
INNER JOIN CSD.dbo.Address AS csd_a ON csd_a.AddressID = csd_sa.AddressID
INNER JOIN CSD.dbo.SiteProductVersions AS csd_spv ON csd_s.SiteID = csd_spv.SiteID
INNER JOIN MasterDB.dbo.States AS mstr_st ON mstr_st.StateID = csd_a.StateID
내가 SiteDetailsViewModel의 뷰 모델 데이터를 작성하는이 3 개 결과를 병합하는 방법을 알아낼 수 없습니다 . 누구든지 도와 줄 수 있습니까?
첫 번째 쿼리에서'join'을 사용하고 다른 컨텍스트를 넣지 못하게하는 이유는 무엇입니까? – AgentFire
EF로 다른 컨텍스트에서 조인 할 수 없습니다. – Robert