2010-05-12 60 views
0

我有這個存儲過程...集團通過與LINQ的存儲過程到SQL

select 
    a.IsDirectClient 
from 
    dbo.Companies as a 
where a.SchemeName = @SchemeName 
    group by a.IsDirectClient 

我想通過LINQ和數據上下文我的解決方案要使用的。但是我不能將這個存儲過程放到公司表中,因爲我得到了「...數據庫對象返回的模式與目標數據類的模式不匹配...」錯誤。 (這是因爲它的返回,而不是單場「*」?)

我的問題是我怎麼使用這個存儲過程使用LINQ,我可以使用var對象:

var directclient = db.DirectClientForScheme("xxx"); 

後來我無法通過智能感知訪問「IsDirectClient」屬性。

回答

1

LINQ to SQL將自動生成一個類型來處理每個存儲過程的返回值(除非在選項中另有指定)。

使用var directclient = ...不應該給你任何問題與智能感知,但它告訴我有一個更大的問題。

自生成LINQ to SQL類以來是否更改了存儲過程?即使你不這麼認爲,嘗試刷新LINQ to SQL圖表中的存儲過程,並查看自動生成的返回類型是否得到正確生成。

+0

因爲我不能將sp放到正確的表上我認爲它沒有配置IntelliSense。我已刪除並重新確認,仍然是同樣的問題。 – Rob 2010-05-12 15:55:58

+0

哎呀,相當寫。我改變了sp從視圖退出數據,而不是原始表。 – Rob 2010-05-17 09:11:35