1

多くの人がすでに直面している問題に直面していますが、違いがあります。SDFファイル名もパスにも無効な文字が含まれていません。Northwind.sdfファイルを試してみましたが、同じ問題が発生し続けています。

フルパスの例:D:\ Sviluppo \ dotnet \ EnergiaClima \ EnergiaClimaWindows \ App_Data \ Northwind.sdf

エラーメッセージ:

System.ArgumentException: The modelEntityContainerName parameter 'D:\Sviluppo\dotnet\EnergiaClima\EnergiaClimaWindows\App_Data\NorthwindsdfContext' 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)

この問題は私を夢中にさせています:EF Power Tools Beta 3は実際にVS2010で動作しますか?そうでない場合、SQLCE4.0 DB(可能であれば3.5 DBを作成してXMLファイルを編集しないもの)からエンティティモデルを取得するための最良の(そしてより簡単な)方法は何ですか?

SQLCE4.0のサポートが非常に貧弱な理由がわかりません。

4

3 に答える 3

1

今では確認済みの問題です: http: //entityframework.codeplex.com/workitem/898

彼らはどのようにライブラリをテストしているのだろうか。SQLCEデータベースでEF5コードファーストを使おうとしたことはあるだろうか。

とにかく、うまくいけば、EF6で解決されるでしょう。

于 2013-04-09T19:58:09.637 に答える
0

SQL Server Compactファイルからedmxを作成したい場合は、SQL Server Compact Toolbox拡張機能を使用して、3.5または4.0ファイルからedmxを作成できます。

于 2013-02-20T13:39:18.803 に答える
0

これは、既存のファイルベースのデータベースで引き続き発生します。これは、SQLServerCompactとLocalDbの両方で発生します。これは、サーバーインスタンスの下のデータベース名と関係があります。コードを介して同じデータベースに接続する前に、「リバースエンジニアコードファースト」接続ダイアログから直接raw .mdf / .sdfに接続しようとすると、DBエンジンはデータベースをサーバーインスタンスにロードします。データベース(初期カタログ)に名前を付ける場所がなく、SQLサーバーインスタンスにロードするためにデータベースに名前を付ける必要があるため、データベースのフルパス。次に、EFリバースエンジニアリングコードが最初にコンテキストを作成しようとすると、DBNameに存在するバックスラッシュ(およびおそらくコロン)がチョークされます。{注:データベース接続文字列に対してコードを発行した後で接続する場合は、

迅速で簡単な解決策は次のとおりです。

1)Visual Studioをシャットダウンして、DBへの接続を切断します。

2)SQL Server Management Studioを起動し、「(localDB)\v11.0」に接続します{これはlocalDBインスタンス用であることに注意してください。コンパクトDBインスタンスが何であるかわかりません。

3)データベース名を右クリックし、[名前の変更]を選択して、データベースの名前を、完全なファイル名のパス名ではなく、目的の初期カタログ名に変更します。

たぶん、EFリバースエンジニアリングコードファーストツールはDBNameを評価し、最後のスラッシュからDBContextのファイル拡張子を除いたものだけを使用する必要がありますか?特に、ほとんどの接続文字列は初期カタログをファイル名と同じ名前に定義しているためです。

これが誰かを助けることを願っています。

于 2014-05-05T20:08:41.057 に答える