首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

LINQ to SQL 預存程序完整對應指南(14):標量回傳、結果集與 O/R 設計師自動生成程式碼

     編輯:關於ASP.NET

將 SQL Server 預存程序拖曳至 O/R 設計師,自動生成強型別方法,支援標量回傳值、單一/多重結果集。

範例:標量回傳預存程序

SQL 定義

ALTER PROCEDURE [dbo].[Customers Count By Region](@param1 NVARCHAR(15))
AS BEGIN
    SET NOCOUNT ON;
    DECLARE @count int;
    SELECT @count = COUNT(*) FROM Customers WHERE Region = @param1;
    RETURN @count;
END

O/R 設計師生成程式碼

[Function(Name = "dbo.[Customers Count By Region]")]
public int Customers_Count_By_Region([Parameter(DbType = "NVarChar(15)")] string param1)
{
    IExecuteResult result = this.ExecuteMethodCall(this, MethodInfo.GetCurrentMethod(), param1);
    return ((int)(result.ReturnValue));
}

呼叫方式

int count = db.Customers_Count_By_Region("WA");
Console.WriteLine(count); // 輸出 WA 區域客戶數

關鍵點總結

  • FunctionAttribute 對應預存程序名稱(含 schema)
  • ParameterAttribute 指定參數型別與長度
  • ExecuteMethodCall 執行並取得 IExecuteResult
  • ReturnValue 取得標量回傳值;GetResult<T>() 取得結果集
  • 多結果集需依序呼叫 GetResult<T>()

預存程序邏輯留在資料庫層,LINQ to SQL 僅負責型別安全呼叫,職責分離清晰。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved