2017-08-31 23 views
-7

如何在C#中使用EF编写此存储过程?如何在C#中使用EF编写此存储过程?

CREATE PROCEDURE FilterDocumentByNumber 
    @Number NVARCHAR(30) 
AS 
BEGIN 
    SELECT * 
    FROM Document 
    WHERE DocumentNumber = @Number 
     AND CostGroupId IN (SELECT CostGroupId 
          FROM CostGroups 
          WHERE CostGroupType = 1) 
END 

感谢

+3

需要,您可能会发现阅读https://stackoverflow.com/help/how-to-ask并包括更多的信息你的问题,以便我们知道你已经尝试了什么,并可以帮助你更多。 – Tim

+0

[您可以使用Entity Framework 4.1代码优先方法创建sql视图/存储过程](https://stackoverflow.com/questions/7667630/can-you-create-sql-views-stored-procedure-using-实体框架4-1代码冷杉) –

+2

如果你不熟悉实体框架,我建议你从一些更简单的事情开始 - 例如从数据库中获取记录列表。 –

回答

1

SO不是一个网站,当你把这里的一切都和预期的人完成这项工作适合你。

反正给你一些提示,我给你一个直建议:

Select CostGroupId From CostGroups Where CostGroupType = 1 - >存储在这些集合,像数组:

var costGroupsIdArr = ctx.CostGroup.Where(x=>x.CostGroupType == 1).Select(x.CostGroupId).toArray(); 
从这里

然后,得到你的主查询:

Select * 
From Document 
Where DocumentNumber = @Number 

这里是最后的结果是:

var result = ctx.Document.Where(x=>x.DocumentNumber == number && vostGroupsIdArr.Contains(x.CostGroupId)).ToList(); 

你可以试着想出自己还有什么从我的片段