Alper Ozcetin's是正確的,你可以在* .dbml中映射StoredProcedures,並且可以使用StoredProcedures作爲Method。
以下是演示做這個用的AdventureWorks數據庫,並同時適用於VS2008和VS2010
Wtih的AdventureWorks我創建了以下PROC
CREATE PROC sp_test (@City Nvarchar(60) , @AddressID int out )
AS
SELECT TOP 10 * FROM Person.Address where City = @City
select top 1 @AddressID = AddressID FROM Person.Address where City = @City
然後我加入sp_test對它的DBML,並寫了下面的程序
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Linq;
namespace Test
{
class Program
{
static void Main(string[] args)
{
DataClasses1DataContext dc = new DataClasses1DataContext("SomeSQLConnection);
int? AddressID = null;
ISingleResult<sp_testResult> result = dc.sp_test("Seattle", ref AddressID);
foreach (sp_testResult addr in result)
{
Console.WriteLine("{0} : {1}", addr.AddressID, addr.AddressLine1);
}
Console.WriteLine(AddressID);
}
}
}
這將導致以下輸出中
23 : 6657 Sand Pointe Lane
91 : 7166 Brock Lane
92 : 7126 Ending Ct.
93 : 4598 Manila Avenue
94 : 5666 Hazelnut Lane
95 : 1220 Bradford Way
96 : 5375 Clearland Circle
97 : 2639 Anchor Court
98 : 502 Alexander Pl.
99 : 5802 Ampersand Drive
13079
你會發現輸入到sp_test對它方法是ref
基於DBML存儲過程不支持輸出參數,據我可以告訴。 – 2009-05-15 21:22:25