2011-03-11 6 views
0

T-SQL어떻게하면 SQL을 eSQL로 변환 할 수 있습니까?

USE [AdventureWorks]; 
SELECT p.* FROM Production.ProductCategory cat ,[Production].[ProductSubcategory] sub, [Production].[Product] p 
WHERE cat.ProductCategoryID=1 AND sub.ProductCategoryID = cat.ProductCategoryID and p.ProductSubcategoryID = sub.ProductSubcategoryID 

그리고 난

<asp:EntityDataSource ID="ProductDataSource" runat="server" ConnectionString="name=AdventureWorksEntities" 
    DefaultContainerName="AdventureWorksEntities" EntitySetName="Product" 
    Where="EXISTS(SELECT VALUE cat FROM ProductCategory AS cat WHERE cat.ProductCategoryID=1) 
      AND EXISTS(SELECT VALUE sub FROM ProductSubcategory AS sub WHERE sub.ProductCategoryID = cat.ProductCategoryID) 
      AND it.ProductSubcategoryID = sub.ProductSubcategoryID) " 
    > 
</asp:EntityDataSource> 

EntityDatasource

에 대한 ESQL로 변환 할하지만 오류입니다.

업데이트 : 감사 devart 힌트, 내가

SELECT VALUE p FROM AdventureWorksEntities.ProductCategory AS cat, AdventureWorksEntities.ProductSubcategory AS sub, AdventureWorksEntities.Product AS p WHERE cat.ProductCategoryID=1 AND sub.ProductCategoryID = cat.ProductCategoryID and p.ProductSubcategoryID = sub.ProductSubcategoryID 

에 쿼리를 수정 이제 작동합니다.

답변

1

당신은 예를 들어, 선택의 EntityDataSource 이벤트 처리기에 다음 코드를 사용할 수 있습니다

string query = @"SELECT VALUE p FROM EntityContainer.ProductCategory as cat, EntityContainer.ProductSubcategory as sub, EntityContainer.Product as p WHERE cat.ProductCategoryID=1 AND sub.ProductCategoryID = cat.ProductCategoryID and p.ProductSubcategoryID = sub.ProductSubcategoryID"; 
EntityDataSource source = null; 
source = Page.FindControl("ProductDataSource") as EntityDataSource; 
if(source != null) { 
    source.EntitySetName = null; 
    source.CommandText = query; 
} 

이 코드는 강력한 형식의 결과를 제공하고 Where 절을 사용합니다.

+0

내가 테스트를 테스트했는데 작동하지 않습니다. 오류 메시지는 '고양이'근처에서 잘못된 것이라고 말했습니다. 심지어 CommandText = "SELECT VALUE p FROM EntityContainer.Product p", 여전히 오류가 발생합니다. – Cheung

+0

이제 작동합니다. 내 업데이트를 참조하십시오. – Cheung

+0

@SilverNight, 죄송합니다. 단지 잘못된 인쇄물입니다. 답변을 업데이트했습니다. – Devart

관련 문제