- 預存程序對應並透過 SQL Profile 觀察
- 預存程序和函式匯入實體模型
Store Procedure - InsertPerson TSQL 語法
CREATE PROCEDURE [dbo].[InsertPerson]
@LastName nvarchar(50),
@FirstName nvarchar(50),
@HireDate datetime,
@EnrollmentDate datetime,
@Discriminator nvarchar(50)
AS
INSERT INTO dbo.Person (
LastName,
FirstName,
HireDate,
EnrollmentDate,
Discriminator)
VALUES (
@LastName,
@FirstName,
@HireDate,
@EnrollmentDate,
@Discriminator);
SELECT SCOPE_IDENTITY() AS NewPersonID;
GO
Person Entity 的預存程序對應設定C# Code 執行測試
namespace EFStoreProcedure2
{
class Program
{
static void Main(string[] args)
{
using (var context = new SchoolEntities())
{
var newInstructor = new Person
{
FirstName = "Robyn",
LastName = "Martin",
HireDate = DateTime.Now,
Discriminator = "Instructor"
};
// Add the new object to the context.
context.Person.Add(newInstructor);
Console.WriteLine("Added {0} {1} to the context.",
newInstructor.FirstName, newInstructor.LastName);
Console.WriteLine("Before SaveChanges, the PersonID is: {0}",
newInstructor.PersonID);
// SaveChanges will call the InsertPerson sproc.
// The PersonID property will be assigned the value
// returned by the sproc.
context.SaveChanges();
Console.WriteLine("After SaveChanges, the PersonID is: {0}",
newInstructor.PersonID);
}
}
}
}
執行結果MSDN 文章說明,使用 Store Procedure 注意事項
預存程序的對應 CUD 作業時的考量,當將 CUD 作業對應至預存程序中,適用下列考量:針對第三點測試,假如預存程序對應時,沒有設定 NewPersonID 的話,不會出現任何錯誤訊息,就 identity 欄位不會帶回來而已,執行後如下圖
- 如果您要對應 CUD 作業的其中一個預存程序,將對應所有人都。 如果您不會對應所有三個,對應的作業將會失敗,如果執行,而且UpdateException就會擲回。
- 您必須將預存程序的每個參數對應至實體屬性。
- 如果伺服器就會產生主索引鍵值插入的資料列,您必須將此值對應回實體的索引鍵屬性。 在範例中,如下所示InsertPerson預存程序會傳回新建立的主索引鍵做為預存程序的結果集的一部分。 主索引鍵對應到實體索引鍵 (PersonID) 使用**<加入結果繫結>** EF 設計工具的功能。
- 預存程序呼叫是對應與 1:1 概念模型中的實體。 例如,如果您實作在概念模型,然後對應中的繼承階層架構 CUD 預存程序父代(基本) 和子(衍生) 的實體,儲存子系變更都只會呼叫子的預存程序,就不會觸發父的預存程序呼叫。




![[EF] 關聯性-1](https://live.staticflickr.com/65535/32762289177_b9ce0e6725_z.jpg)
![[EF] 關聯性-2](https://live.staticflickr.com/65535/47652422012_04458f8e9a.jpg)
![[EF] 關聯性-3](https://live.staticflickr.com/65535/46789345655_c62482cd43_o.png)
![[EF] 關聯性-4](https://live.staticflickr.com/65535/47705586571_0b150d3894.jpg)
![[EF] 關聯性-5](https://live.staticflickr.com/65535/47705430421_63159e8df5_z.jpg)
![[EF] 關聯性-6](https://live.staticflickr.com/65535/46789345535_29e159c3b7_z.jpg)
![[EF] 關聯性-10](https://live.staticflickr.com/65535/32762442227_558be803e7.jpg)
![[EF] 關聯性-9](https://live.staticflickr.com/65535/47705586241_f7f6d9b6d2.jpg)
![[EF] 關聯性-8](https://live.staticflickr.com/65535/46789345425_d9e942c3a8.jpg)
![[EF] Table 對應多 Entities-1](https://live.staticflickr.com/65535/32725514287_e500d7f4cd_m.jpg)
![[EF] Entity 對應多 Table-1](https://live.staticflickr.com/65535/33781952728_eda92c95bf.jpg)
![[EF] Entity 對應多 Table-2](https://live.staticflickr.com/65535/32716807837_3f773d0c1e.jpg)
![[EF] Entity 對應多 Table-3](https://live.staticflickr.com/65535/33781952698_eda92c95bf_z.jpg)
![[EF] Entity 對應多 Table-4](https://live.staticflickr.com/65535/33781952528_e2a41c5245.jpg)
![[EF] Entity 對應多 Table-5](https://live.staticflickr.com/65535/47659339301_ebb938d3da.jpg)
![[EF] Entity 對應多 Table-6](https://live.staticflickr.com/65535/32716807747_7d1dbb747c_z.jpg)
![[EF] Entity 對應多 Table-7](https://live.staticflickr.com/65535/33781952338_c8288fe3b6_z.jpg)
![[SQL] 限制資料筆數 2-4](https://live.staticflickr.com/65535/46721731305_92a7f1254f_o.png)
![[SQL] 限制資料筆數 2-1](https://live.staticflickr.com/65535/46721478065_9309e4a044_z.jpg)
![[SQL] 限制資料筆數 2-2](https://live.staticflickr.com/65535/40670562293_8979daf5e2_z.jpg)
![[SQL] 限制資料筆數 2-3](https://live.staticflickr.com/65535/47637168871_6c1c4518b8_z.jpg)
![[SQL] 日期轉換效能 (續)-1](https://live.staticflickr.com/65535/46910085024_a7ede044b7_o.png)
![[SQL] 日期轉換效能 (續)-2](https://live.staticflickr.com/65535/32691774837_3b1cf711f3_z.jpg)
![[SQL] TempDB 異常成長-1](https://live.staticflickr.com/65535/47629761511_ebda65f4b8_z.jpg)
![[SQL] TempDB 異常成長-2](https://live.staticflickr.com/65535/40663466243_105fb593d8_z.jpg)
![[SQL] TempDB 異常成長-3](https://live.staticflickr.com/65535/46905608044_94fae37fcf_z.jpg)
![[EF] TPT-11](https://live.staticflickr.com/65535/32671765287_e2204dbe36.jpg)
![[EF] TPH-14](https://live.staticflickr.com/7914/46875604934_d65b5cb7b0_z.jpg)
![[EF] 使用資料表值函式-5](https://live.staticflickr.com/7879/46825799624_88e18943b5_z.jpg)
![[EF] 學校範例資料庫](https://live.staticflickr.com/7837/47540575881_ecb176b2b4_z.jpg)