0
我在網上搜索這個問題的答案,並且我已經簡要地回答了。我有一個簡單的存儲過程,從視圖中選擇列,我想將這些數據保存在我的程序的模型中。然而,當我調用存儲過程時,它有一個返回類型的ObjectResult,所以我一直在試圖實現這一點,但是我對於在我的模型中使用什麼數據類型感到不知所措。保存SELECT存儲過程的結果ASP.NET實體框架
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
該過程只是選擇這些列。
我想讓我的模型保存這些數據,以便我可以在View中引用它並從中構建表,但問題是保存這些數據。
public ObjectResult GetPartnerCompanyRelationships(int coid)
{
using (var context = LTPortalEntities.getEntities())
{
ObjectResult x = context.GetPartnerCompanyRelationships(coid);
return x;
}
}
這是我在datahelper類都試過了,在我的控制器:
var companyList = _da.GetPartnerCompanyRelationships(coid);
foreach (vwDocument item in companyList)
{
MyDashBoard.CompanyList.Add(item);
}
如果這是含糊的,請讓我知道什麼,包括,這是我在獲取信息第一槍與存儲過程。
我遇到的其他問題之一是嘗試使用從視圖中選擇的ORDER BY,我的過程並不那麼喜歡。所以我想知道如果創建一個函數會更容易?如果是這樣,那麼怎麼把它變成edmx。
嗯,我想我找到了問題,因爲我無法將我的過程映射到一個實體,因爲Count()我碰壁了。 –
將它作爲表值函數來使用。 –
我試着定義一個表值函數,但我無法弄清楚如何將它導入edmx。當我在數據庫中創建它時,它並未顯示在存儲過程/函數更新菜單下。 –