4

背景 私が読んだ.Net 4.5をインストールしたマシンでVS 2010を使用していますが、これはインプレースインストールでした(.net 4.0バージョンをオーバーライドしました)。

私はまだ 4.0 を対象とするプロジェクトを持っており、4.5 オプションは利用できませんが、4.5 はインプレース インストールだったので問題ないと言われました。次に、ナゲット経由で EntityFramework -pre をインストールし、Upgrade-Database -Script コマンドを実行したときに、enum プロパティが生成されないことを通知しました。

その後、これを見つけまし。すべてを最初からやり直しましたが、5.0 ではなく EntityFramework 4.4 を追加していました。そのため、すべての参照を 5.0 バージョンを指すように手動で変更して、EF 5.0 バージョンがあることを確認しました。すべてコンパイルされました。

問題 私が走るとき

Enable-Migrations -EnableAutomaticMigrations

現在のプロジェクトで DbContext から派生したクラスが見つかりません。生成された構成クラスを編集して、移行を有効にするコンテキストを指定してください。

したがって、次のようにクラスが正しいことを手動で確認しました。

internal sealed class Configuration : DbMigrationsConfiguration<DataContext>
{
    public Configuration()
    {
        AutomaticMigrationsEnabled = true;
    }

DataContext は DbContext のサブクラスです。

私が走るとき

Update-Database -Script

" No migrations configuration type was found in the assembly 'MyProject'. (Visual Studio では、パッケージ マネージャー コンソールから Enable-Migrations コマンドを使用して、移行構成を追加できます) "というメッセージが表示されます。

MyProject には上記の構成クラスがあり、パッケージ マネージャー コンソールで、Migrations フォルダーとこの構成クラスを含むプロジェクトの適切なドロップダウンを選択しています。

質問

  1. .Net 4.5 がインストールされていても、nuget を介して EnittyFramework をインストールするときに、4.4 ではなく 5.0 バージョンが追加されるようにするにはどうすればよいですか?

  2. 上記の質問に関連して何もできない場合、Upgrade-Database が確実にスクリプトを出力するようにするにはどうすればよいですか?

4

1 に答える 1

7

Entity Framework 5.0 はまだリリースされていません。プレリリースがありますが、NuGet でプレリリースを表示するには、特にプレリリースを有効にする必要があります。

ただし、EF 5.0 は、.NET 4.5 でサポートされるすべての機能を .NET 4.0 でサポートするわけではないことに注意してください。はい、.NET 4.5 は .NET 4.0 を上書きしますが、プロジェクトが VS2010 にある場合は、.NET 4.5 ではなく .NET 4.0 用にビルドするように構成されます。結果は .NET 4.5 を持たないシステムで実行する必要があるため、.NET 4.5 の機能を想定することはできません。結局のところ、.NET 4.0 をターゲットにしており、enum のサポートは NuGet から取得した EntityFramework DLL にはなく、.NET ランタイムの一部である System.Data.Entity DLL にあるため、.NET に追加することはできません。ネット 4.0。Visual Studio Betaをインストールして、.NET 4.5 を対象とするアプリケーションを作成できます。

要するに、「4.5はインプレースインストールだったので大丈夫だと言われました」-いいえ、あなたの目的には問題ありません。

于 2012-05-07T22:43:23.300 に答える