Entity Framework 6 Alpha 3为Code First提供对存储过程支持,并提供连接恢复功能
Microsoft宣布Entity Framework 6 Alpha 3已 經可以下載了,它現在支持通過Fluent API將Code First映射到對應的新增、修改和刪除功能的存儲過程;添加了連接恢復功能;包含了來自iceclow和UnaiZorrilla的pull request內容;并添加了新的DbContext的API,以允許你管理自己的事務。
根據Microsoft所說,這三種存儲過程在創(chuàng)建時需要遵循類似于<type_name>Insert,<type_name>Update 及<type_name>_Delete這樣的格式。另外,方法的參數名稱需要和屬性名稱相對應,新增和修改的存儲過程需要為每個屬性創(chuàng)建一 個對應的參數,除了那些標記為ID(Identity)及計算所得的屬性。而刪除的存儲過程則需要為實體(entity)的主鍵值創(chuàng)建一個對應的參數。
讓我們看一看以下代碼片段:
對應以上代碼的新增存儲過程看起來應該是以下這樣:
CREATE PROCEDURE [dbo].[Blog_Insert] @Name varchar(max), @Url varchar(max) AS INSERT INTO [dbo].[Blogs] ([Name], [Url])VALUES (@Name, @Url)SELECT SCOPE_IDENTITY() AS BlogId修改和刪除的存儲存儲過程則按照如下方式編寫:
CREATE PROCEDURE [dbo].[Blog_Update]@BlogId int, @Name varchar(max), @Url varchar(max) AS UPDATE [dbo].[Blogs] ??SET [Name] = @Name, [Url] = @Url WHERE BlogId = @BlogId;
CREATE PROCEDURE [dbo].[Blog_Delete]@BlogId int ASDELETE FROM [dbo].[Blogs]WHERE BlogId = @BlogId
官方文檔詳細地介紹了所有可能的場景細節(jié)。
Entity Framework 6 Alpha 3加入了連接恢復功能,能夠從短暫的連接失敗中自動恢復。它的實現使用了IExecutionStrategy接口,而在其中的具體實現又使用到了IRetriableExecutionDector及IRetryDelayStrategy接口。
根據官方信息來源,Entity Framework將包含4個執(zhí)行策略(Execution Strategy),分別為 NonRetryingExecutionStrategy,DefaultSqlExecutionStrategy,ExecutionStrategy 和SqlAzureExecutionStrategy。
Entity Framework Alpha 3提供了一項功能,它是來自iceclow提交的一個pull request,允許你創(chuàng)建定制化的數據遷移操作,并在一個定制化遷移SQL腳本生成器中處理這些操作。Microsoft ADO.NET Entity Framework的項目經理Rowan Miller已經通過相關的代碼示例介紹了iceclow的實現方式。
Alpha 3也允許你使用來自UnaiZorrilla所 提交的pull request,它提供了一個可插式的復數化與單數化的服務。另一項所包含的功能是允許你通過使用 DbContext.Database.UseTransaction及DbContext.Database.BeginTransaction API管理你自己的事務。
轉載于:https://www.cnblogs.com/shihao/archive/2013/03/05/2945284.html
總結
以上是生活随笔為你收集整理的Entity Framework 6 Alpha 3为Code First提供对存储过程支持,并提供连接恢复功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《Two Dozen Short Les
- 下一篇: asp.net运行机制