3

왜 내 DbContext에 저장된 저장 프로 시저가 보이지 않습니까? DbContext는 CTP5 릴리스 (POCO 클래스 포함)에서 도입 된 템플릿에 의해 생성됩니다. 항목이 내 상황에서 추가되는 경우 http://thedatafarm.com/blog/data-access/checking-out-one-of-the-new-stored-procedure-features-in-ef4/POCO 클래스가있는 DbContext에서 저장 프로 시저를 볼 수 없습니다.

이 또한 내가 검색 한 이러한 결과 다음과 같습니다 :

<Function Name="GetClientsForEmailSend" Aggregate="false" BuiltIn="false" NiladicFunction="false" IsComposable="false" ParameterTypeSemantics="AllowImplicitConversion" Schema="dbo" /> 

<FunctionImport Name="GetClientsForEmailSend" EntitySet="Client" ReturnType="Collection(DBMailMarketingModel.Client)" /> 

<FunctionImportMapping FunctionImportName="GetClientsForEmailSend" FunctionName="DBMailMarketingModel.Store.GetClientsForEmailSend"> 

비슷한 질문은이 튜토리얼에서 말했듯이

내가 저장 프로 시저를 추가 :

Why won't EF4 generate a method to support my Function Import?

하지만 내가했던 모든 결과가 나왔다.

이 저장 프로 시저입니다 :

ALTER PROCEDURE GetClientsForEmailSend 
AS 
BEGIN 
-- SET NOCOUNT ON added to prevent extra result sets from 
-- interfering with SELECT statements. 
SET NOCOUNT OFF; 

-- Insert statements for procedure here 
SELECT * 
FROM dbo.Client AS c 
INNER JOIN Subscription AS i on c.IDClient = i.IDClient 
WHERE c.Email is not null and c.Email <> '' and i.Active = 1 
END 
GO 

나는 무엇을 놓치고?

감사

답변

5

DbContext는 방법에 매핑 저장 프로 시저에 대한 지원을 제공하지 않습니다. context.Database.SqlCommand (...) 또는 context.Database.SqlQuery (...)를 사용하여 직접 프로 시저를 호출해야합니다.

+0

답변 해 주셔서 감사합니다. 당신 말이 맞아,하지만 불행히도 나는 exptected 결과를받지 못했습니다. 내가 원하는 결과는 활성 구독 (즉, bool 활성) 클라이언트를로드하는 것입니다, 그래서 클라이언트가 3 구독을 가지고 있지만 2 활성화되어 있습니다 dbcontext가 latters.L 위의 SP를 시도하고 그 결과를 저장하는 변수는 null이고 LINQ도 마찬가지입니다. var result = 클라이언트의 e let sub = e.Subscriptions sub.ToList() .FindAll ((s) => s.Active == true) .Count> 0 select e; 해결책을 제안 해 주시겠습니까? 감사! – stuzzo

+0

@stuzzo : 필터링 된 하위 항목이있는로드 된 상위 엔티티는 프로젝션으로 완료해야합니다. 이 질문을 확인하십시오 : http://stackoverflow.com/questions/4720573/linq-to-entities-how-to-filter-on-child-entities –

+0

감사합니다. 도움을 주시면 문제를 해결했습니다. – stuzzo

관련 문제