我正在网上搜索这个问题的答案,但我没有找到答案。我有一个从视图中选择列的简单存储过程,我想将此数据保存在程序中的模型中。但是,当我调用存储过程时,它的返回类型为 ObjectResult,所以我一直在尝试实现它,但我不知道在我的模型中使用什么数据类型。
CREATE PROCEDURE [dbo].[GetPartnerCompanyRelationships]
@inputCoid INT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SELECT [CoId]
,[CompanyName]
,[CompanyId]
,[PartnerCoId]
,[PartnerCompanyName]
,Count(*) as DocumentTotal
FROM vwDocuments
where coid = @inputCoid and DocumentType = 'order' and PartnerCoId <> @inputCoid
group by [CoId]
,[CompanyName]
,[CompanyId]
,[PartnerCoId]
,[PartnerCompanyName]
union all
SELECT [CoId]
,[CompanyName]
,[CompanyId]
,[PartnerCoId]
,[PartnerCompanyName]
,Count(*) as DocumentTotal
FROM vwDocuments
where PartnerCoId = @inputCoid and DocumentType = 'order' and CoId <> @inputCoid
group by [CoId]
,[CompanyName]
,[CompanyId]
,[PartnerCoId]
,[PartnerCompanyName]
END
该过程只是选择这些列。
我希望我的模型保存这些数据,以便我可以在视图中引用它并从中构建一个表,但问题是保存这些数据。
public ObjectResult GetPartnerCompanyRelationships(int coid)
{
using (var context = LTPortalEntities.getEntities())
{
ObjectResult x = context.GetPartnerCompanyRelationships(coid);
return x;
}
}
这是我在 datahelper 类和 Controller 中尝试过的:
var companyList = _da.GetPartnerCompanyRelationships(coid);
foreach (vwDocument item in companyList)
{
MyDashBoard.CompanyList.Add(item);
}
如果这含糊不清,请告诉我要包括什么,这是我第一次使用存储过程获取信息。
我遇到的其他问题之一是尝试从视图中选择 ORDER BY,我的程序不太喜欢这样。所以我想知道创建一个函数是否会更容易?如果是这样,如何将其放入 edmx。