BT

InfoQ ホームページ ニュース Entity Framework 6 Alpha 3は、コードファーストストアドプロシージャと接続回復性を持つ

Entity Framework 6 Alpha 3は、コードファーストストアドプロシージャと接続回復性を持つ

ブックマーク

原文(投稿日:2013/03/01)へのリンク

 

Microsoftは、fluent APIの補助によるinsert、update、deleteストアドプロシージャー、接続回復性、iceclowからのプルリクエスト、UnaiZorrillaとあなた自身がトランザクションを管理できる新しいDbContext APIシナリオをサポートするEntity Framework 6 Alpha 3を発表した。

Microsoftによると、3つのストアドプロシージャは、 <type_name>_Insert、<type_name>_Update、<type_name>_Deleteのようなフォーマットで作成されるべきである。さらにパラメータ名に対応したと、insertとupdateストアドプロシージャーは、識別子や計算とマークされたものを除き、すべてのプロパティをパラメータとして持つべきであり、deleteストアドプロシージャーは、エンティティのキー値のパラメータを持つべきである。

以下のコードスニペットを見てみよう。

public class Blog
{
  public int BlogId { get; set; }
  public string Name { get; set; }
  public string Url { get; set; }
}

上記のコードに対応したinsertストアドプロシージャが以下のように表示される。

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

updateとdeleteのプロシージャーは以下のように表示される。

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
AS
  DELETE FROM [dbo].[Blogs]
  WHERE BlogId = @BlogId

公式ドキュメントではすべての可能なシナリオを詳細に検討している。

Entity Framework 6 Alpha 3には、一時的な接続障害からの自動復旧を可能にするa href="http://entityframework.codeplex.com/wikipage?title=Connection%20Resiliency%20Spec">接続回復性が含まれている。これは、IRetriableExceptionDetectorとIRetryDelayStrategyインターフェイスを使ったIExecutionStrategyインターフェイスが実装されている。

公式な情報によると、Entity FrameworkはNonRetryingExecutionStrategy、DefaultSqlExecutionStrategy、ExecutionStrategy、SqlAzureExecutionStrategyといった4つのストラテジ実行とともにリリースされる。

Entity Framework 6 Alpha 3は、カスタム移行操作とカスタム移行SQLジェネレータでそれらの操作をすることができるiceclowからのプルリクエストを提供する。 MicrosoftでADO.NET Entity FrameworkのProgram ManagerであるRowan Miller氏は、関連するコードとiceclowの実装を検討してきた。

Alpha 3はまた、DbContext.Database.UseTransactionとDbContext.Database.BeginTransaction APIsの補助による自身のトランザクションの管理を含むプラグ可能な複数形と単数形サービスを提供するUnaiZorrillaからのプルリクエストも可能にする。

 

この記事に星をつける

おすすめ度
スタイル

特集コンテンツ一覧

RESTlessnessに打ち勝つ

Matt McLarty 2019年3月13日 午前7時39分

.NET CLIクイックツアー

Jeremy Miller 2019年2月18日 午前1時55分

.NET CoreとDevOps

Dave Swersky 2019年2月6日 午後11時46分

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT

あなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。

Eメールを変更すると確認のメールが配信されます。

会社名:
役職:
組織規模:
国:
都道府県:
新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。