2012-09-21 5 views
6

が含まれているがSQLServerデータベースのコードファーストをリバースエンジニアリングして、次のエラーを受け取りました:System.ArgumentExceptionの:modelEntityContainerNameパラメータは、私は、エンティティフレームワークパワーツールを使用することを試みた無効な文字

System.ArgumentException: The modelEntityContainerName parameter 'testContext' contains characters that are not valid.
    at System.Data.Entity.Design.EntityModelSchemaGenerator..ctor(EntityContainer storeEntityContainer, String namespaceName, String modelEntityContainerName)
    at Microsoft.DbContextPackage.Handlers.ReverseEngineerCodeFirstHandler.ReverseEngineerCodeFirst(Project project)

は何かがあります私はこのエラーを回避しないで回避し続けるか、回避することができます。

ありがとうございました。

答えて

2

私は同じ問題を抱えていました。私のデータベースの名前はsots-version-005で、コードはその名前をエスケープしていませんでした。答えは、データベースの名前を変更することです。うまくいけば、簡単に実行できる開発環境にいらっしゃいます。

SQL Management Studioを右クリックして名前を「sots5」に変更し、英数字以外のすべての文字を削除しました。

0

現在、VS 2013とEntityフレームワークのバージョン6.1.2で作業していて、同じエラーが発生しました。

私は、エンティティフレームワークのCodePlexサイト上ErikEJことで、この記事を見つけました: http://entityframework.codeplex.com/workitem/898#CommentContainer9

「@グレッグ - この問題は、パワーツールに固定されていませんが、バージョン6.1ツーリング(データベースからのコードファースト)に固定されています( SQLコンパクトでテスト済み)」

現在のところ、PowerToolsを使用することはできません。 しかし、Entity Framework 6自体がこれをサポートしています。 http://msdn.microsoft.com/en-us/data/jj200620

エンティティデータモデルアイテムをプロジェクトに追加し、「データベースからコードを最初に」を選択します。

生成されるクラスは、Power Toolsの作成するクラスとは少し異なります。 Power Toolsは、データベースを設定するときにのみFluent APIを使用します。 一方、EFウィザードはデフォルトでデータ注釈を使用し、必要なときにのみFluent APIを使用します。 ただし、Fluent APIのみが使用されるようにテンプレートファイルを変更することもできます。

関連する問題