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

时间:2017-08-31 11:48:57

标签: c# sql-server entity-framework stored-procedures

如何在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

由于

1 个答案:

答案 0 :(得分:1)

当你把所有东西扔到这里并期望人们为你完成工作时,SO不是一个网站。

无论如何,为了给你一些提示,我给你一个直截了当的建议:

Select CostGroupId From CostGroups Where CostGroupType = 1 - >将它们存储在A集合中,如数组:

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();

您可以尝试从我的代码段中找出自己需要的其他内容