2012-05-07 10 views
4

背景 私がインストールしたマシンでVS 2010を使用しています。私が読んだのは、インプレースインストール(.net 4.0バージョンをオーバーロード)でした。EF 5.0列挙型が生成されない

私はまだ4.0と4.5をターゲットにしているプロジェクトを持っていますが、利用できませんが、4.5はインプレースインストールだったのでOKです。その後、EntityFramework -preをnuget経由でインストールし、Upgrade-Database-Scriptコマンドを実行したときにenumプロパティを生成しないことに気づきました。

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

問題 私は

Enable-Migrations -EnableAutomaticMigrations 

を実行すると、私が得る「DbContextから派生ませクラスは、現在のプロジェクトでは見つかりませんでした。 編集生成されたConfigurationクラスのための移行を可能にするためのコンテキストを指定する。

私は手動でクラスが正しいことを手動で確認しました。

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

DataContextサブクラスDbContext。

私は実行すると

Update-Database -Script 

私はあなたが追加するパッケージマネージャコンソールから有効-移行コマンドを使用することができますVisual Studioで(ませ移行構成タイプがアセンブリでは見られなかった 『MyProjectと』。 "を取得 "

MyProjectに上記のコンフィグレーションクラスがあり、パッケージマネージャコンソールでは、マイグレーションフォルダとこのコンフィグレーションクラスを含むプロジェクトの右のドロップダウンを選択しています。

QUESTION

  1. 私はnuget経由EnittyFrameworkをインストールするとき、それは私がネット4.5インストールされているにもかかわらず、4.4を5.0バージョンを追加していないことを確認するために何をしますか?

  2. 上記の質問に関連することができない場合は、アップグレードデータベースがスクリプトを吐くことを確認するために何ができますか?

答えて

7

Entity Framework 5.0はまだリリースされていません。 prereleasesがありますが、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の機能は使用できません。あなたはNuGetから得たEntityFramework DLLには.NET 4.0をターゲットにしています。enumサポートはSystem.Data.Entity DLLに含まれています。.NETランタイムであるため、.NET 4.0では追加できません。 Visual Studio Betaをインストールすると、.NET 4.5を対象とするアプリケーションを作成できます。

簡潔に:「4.5はインプレースインストールだったので、大丈夫だと言われました」 - いいえ、それはあなたの目的のためではありません。

+0

コメントを評価してください。私は、を使用して.netフレームワークを4.5にリターゲットする方法についてScott Hanelmanのブログ記事をたどった。私はVS 11にアップグレードするべきですか? – TimJohnson

+0

@gsogolyはい、.NET 4.5はVS 2010ではサポートされていません。ウェブアプリケーションで 'targetFramework =" 4.5 "'を設定すると、.NET 4.0で開発されたアプリケーションが.NET 4.5でも実行できますが、.NET 4.0開発されたアプリケーションであり、実際には.NET 4.5のメリットはありません(既存のメソッドのバグ修正を除く)。 – hvd

+0

私はWin2k8 R2 32ビット版があり、VS11は64ビット版ではないため失敗しています。 VS 10で.net 4.5をターゲットにする方法は他にありませんか? – TimJohnson

関連する問題