6

SQLServer データベースに対して Entity Frameworks Power Tools リバース エンジニア Code First を使用しようとしたところ、次のエラーが発生しました。

System.ArgumentException: modelEntityContainerName パラメーター 'testContext' に無効な文字が含まれています。
    System.Data.Entity.Design.EntityModelSchemaGenerator..ctor (EntityContainer storeEntityContainer、文字列 namespaceName、文字列 modelEntityContainerName)
    で Microsoft.DbContextPackage.Handlers.ReverseEngineerCodeFirstHandler.ReverseEngineerCodeFirst (プロジェクト プロジェクト) で

このエラーを続行または回避するか、回避するためにできることはありますか。

ありがとう。

4

2 に答える 2

2

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

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

于 2013-01-30T17:32:04.017 に答える
0

現在、VS 2013 およびエンティティ フレームワーク バージョン 6.1.2 を使用していますが、同じエラーが発生しました。

エンティティ フレームワークのコードプレックス サイトで ErikEJ によるこの投稿を見つけました: http://entityframework.codeplex.com/workitem/898#CommentContainer9

「@Greg - この問題は Power Tools では修正されていませんが、バージョン 6.1 ツール (データベースからのコード ファースト) で修正されています (SQL Compact でテスト済み)」

そのため、現在、PowerTools はこれには使用できません。ただし、Entity Framework 6 自体はこれをサポートしています。このビデオで説明されているワークフローに従ってください: http://msdn.microsoft.com/en-us/data/jj200620

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

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

于 2015-01-14T16:24:37.123 に答える