EF 內建「函數導入」精靈可將存儲過程映射為回傳實體的方法。步驟:開啟 EDMX 設計器 → 右鍵實體 →「加入」→「函數導入」→ 選擇 SP、命名、回傳型別選「實體」並指定實體集(如 Customers)。
導入後自動生成 GetCustomerById(string customerID) 方法,程式碼即可直接呼叫:
[Test]
public void GetEntityBySP() {
using (var db = new NorthwindEntities()) {
var cst = db.GetCustomerById("ALFKI").FirstOrDefault();
Assert.IsNotNull(cst);
Console.WriteLine("CustomerId:{0}, ContactName:{1}", cst.CustomerID, cst.ContactName);
}
}
注意:此方式要求 SP 回傳完整實體欄位,否則映射會失敗。