我正在使用EF 6进行项目,我是EF的新手。对于这个特定的项目,我们尽可能地使用现有的数据库和存储过程。我有一个存储过程,它带来了比模型更多的数据列。我们一直在使用该存储过程,但现在又要求它返回的数据。我不确定实现这个的最好方法,所以我转向这里寻求帮助。
这是我的存储过程:
CREATE Procedure dbo.procGetMainInvoices
@Division CHAR(5),
@CustNum CHAR(6)
AS
SELECT i.InvoiceNumber,
i.Division,
i.CustomerNumber,
i.InvoiceType,
i.InvoiceDate,
i.DueDate,
i.AmountDue,
(SELECT COUNT(trn.InvoiceNumber)
FROM Invoice trn
WHERE trn.InvoiceNumber = i.InvoiceNumber
AND trn.Division = i.Division
AND trn.CustomerNumber = i.CustomerNumber) as TransactionCount
FROM Invoice i
WHERE i.Division = @Division
AND i.CustomerNumber = @CustNum
AND i.InvoiceStatus = 'O'
AND i.ItemSequence = 0
AND i.ItemLine = 0
ORDER BY i.InvoiceDate,
i.InvoiceNumber
如您所见,选择的最后一列是计数。我需要将这些数据添加到我现有的发票模型中。我需要它有效地完成,因为我可以一次读取数百或数千条记录。
答案 0 :(得分:0)
我通过将存储过程转换为视图来实现此目的。然后将我的DBContext绑定到视图。我必须创建一个包含视图中字段的新模型,但它确实给了我灵活性,我需要能够将结果过滤到与存储过程相同的程度。