[Entity Framework] Cannot drop database because it is currently in use. エラー

Entity Framework を使って実装したコードをローカルで実行した際に Initializer の Seed() でエラー。

型 'System.Data.SqlClient.SqlException' の例外が EntityFramework.dll で発生しましたが、ユーザー コード内ではハンドルされませんでした
追加情報:Cannot drop database "[データベース名]" because it is currently in use.

unit testing – “Cannot drop database because it is currently in use”. How to fix? – Stack Overflow
前回の接続でエラーなどが発生した際に接続が残ってしまっているのが原因らしい。

Visual Studio を再起動することで直った。

ちなみに ALTER をかけるといいみたいだけど context.Database.Connection.Database が空文字列で返ってきてうまくいかなかった。
発生したエラーメッセージの [データベース名] を直接指定したら通った。(要検証)

public class CustomInitializer<T> : DropCreateDatabaseAlways<YourContext>
{
    public override void InitializeDatabase(YourContext context)
    {
        context.Database.ExecuteSqlCommand(TransactionalBehavior.DoNotEnsureTransaction
            , string.Format("ALTER DATABASE [{0}] SET SINGLE_USER WITH ROLLBACK IMMEDIATE", context.Database.Connection.Database));
 
        base.InitializeDatabase(context);
    }
 
    protected override void Seed(YourContext context)
    {
        // Seed code goes here...
 
        base.Seed(context);
    }
}

カテゴリー: ASP.NET, Entity Framework | コメントする

Windows 10 に Visual Studio Community 2015 をインストール

Visual Studio Community 2015:
無料開発ツール – Visual Studio Community 2015

日本語の言語パック:
Download Microsoft Visual Studio 2015 Language Pack from Official Microsoft Download Center

適用:
Visual Studio Community 2015 を起動
Tools > Options > International Settings
Language: 日本語
再起動

エラー:
SP324092: You are not allowed to access a resource from our service.
サインインできない場合は1回終了して再起動するとサインインできました。
無視して Continue しても起動はするみたい。


カテゴリー: 開発環境 | タグ: | コメントする

名前 “LayoutAwarePage” は名前空間 “using:App1.Common” に存在しません。

名前 “LayoutAwarePage” は名前空間 “using:App1.Common” に存在しません。
というエラーが発生してビルドができない場合は
*.sln と同階層にある *.suo ファイル(隠しファイル)を削除するとビルドできるようになります。

LayoutAwarePageは、名前空間のVS2012のバグには存在しないのですか? — IT専門質問の答え — 彼山の知識
名前”LayoutAwarePage”は名前空間”using:App1.Common”に存在しません。 | Microsoft Connect
名前 “LayoutAwarePage” は名前空間 “using:App1.Common” に存在しません。
名前”LayoutAwarePage”は名前空間”using:App1.Common”に存在しません。 | Microsoft Connect


カテゴリー: Windows ストア アプリ | タグ: , , | コメントする

Twitter クライアントの死活監視

Twitter 社による誤 BAN が相次ぐ昨今。

クライアント作者の悲痛な叫び。


カテゴリー: Twitter | タグ: | コメントする

Twitter タイムライン上の動画が自動再生される

タイムライン上の動画が自動再生されるようになりました。

とりあえずOFFにしましょう。


カテゴリー: Twitter | タグ: | コメントする