1

私はWebMatrixの作業を始めたばかりで、このチュートリアルを実行して基本を学び、次にこのチュートリアルを開始してWebMatrixのEntity Frameworkを開始しました(注:このチュートリアルはWebMatrix 1用ですが、変更されたのはプロジェクトにヘルパーをインストールする方法)。問題は、Entity Frameworkヘルパーをインストールしましたが、プロジェクトがEntityFramework.dllを認識しないということです。

このエラーが発生しますThe type or namespace name 'MaxLength' could not be found (are you missing a using directive or an assembly reference?)。しかし、EntityFramework.dllは私のbinフォルダーに表示されますが、何が起こっているのでしょうか。参照が機能しない理由がわかりません。

これは、2番目のチュートリアルによるとEntityFrameworkヘルパーをインストールした後の私のWeb.configファイルです。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
  </configSections>
  <system.web>
    <compilation debug="true" targetFramework="4.0"><assemblies><add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /><add assembly="System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /></assemblies></compilation>
  </system.web>
  <connectionStrings>
    <add name="BookContext" connectionString="Data Source=|DataDirectory|Books.sdf" providerName="System.Data.SqlServerCe.4.0" />
  </connectionStrings>
</configuration>

これはコンパイラの出力リンクです

私は何かが足りないのですか?EntityFramework.dllがプロジェクトで正しく認識されないのはなぜですか?

アップデート

Visual Studio 2012で作成されたWebページプロジェクトからEntityFramework.dllをコピーすると、問題は解決したと思いましたが、エラーは表示されなくなりましたが、WebMatrixはTable、Column、ForeignKey、InversePropertyなどの注釈を認識しません。等

本当にわかりません。単純なデータベースが作成されますが、EntityFrameworkアノテーションを使用して、データベースに必要なすべてを指定することはできません。WebMatrixはEntityFramewor.dllを認識する必要がありますが、認識しません。私は本当に迷子になっているので、これで助けが必要です。

4

1 に答える 1

2

表示されるエラーは、サイトにインストールされている EntityFramework のバージョンの最終結果です。

EntityFramework 5.0 パッケージは、プロジェクトが対象としている .NET のバージョン (4.0 または 4.5) に応じて、EntityFramework.dll のバージョン 4.4 または 5.0 をインストールします。

私の経験では、WebMatrix の NuGet ギャラリーから EntityFramework をインストールすると、常にバージョン 4.4 の EntityFramework.dll が bin フォルダーにコピーされます。[プロパティ] --> [EntityFramework.dll ファイルの詳細] で確認できます。

私が知っている唯一の解決策は、VisualStudio Express または別のスタンドアロン ユーティリティを使用して EntityFramework v.5.0 をダウンロードし (この記事を参照してください: Install Entity Framewok v5 in Webmatrix 2 RC を参照)、WebMatrix の NuGet ギャラリーによってインストールされた dll を単純にこれに置き換えます。

アップデート

EntityFramework v.5.0 および WebMatrix で実験されたその他の問題は、タイプ 'System.Data.EntityState' が参照されていないアセンブリで定義されており、 DataAnnotations.Schema の using ディレクティブが必要であることです。

最初の問題は、次の参照を web.config に追加することで解決されます (ファイルまたはアセンブリを読み込めませんでした 'System.Data.Entityを参照してください)。

<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

2番目の問題には、ディレクティブの追加が必要です

using System.ComponentModel.DataAnnotations.Schema;

コードに。

とにかく、私の意見では、WebMatrix は EntityFramework に基づくサイトを開発するための適切なツールではありません。

于 2012-12-12T12:59:23.483 に答える