6

SQL データベースにリンクしようとする Visual Studio 2012 Web アプリケーション (fw. 4.5) があります。プロジェクトにデータ コンテキストを追加し、ルート フォルダーに配置しました。datacontext ファイルに、SQL 2012 Express データベースから GlobalMenu という名前のテーブルを追加しました。

次のコマンドを使用して、linq でデータにアクセスしようとしています。

DataContextDataContext db = new DataContextDataContext();
var menupages = from p in db.GlobalMenus
                select p;

インテリセンス レポート:

Module 'System.Data.Linq' Version=4.0.0.0, Culture=neutral, Publickeytoken=b77a5c561934e089' should be referenced

アプリケーションをコンパイルして実行しようとすると、次のようになります。

CS0012: The type 'System.Data.Linq.DataContext' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.

System.Data.Linq 4.0.0.0 は私のプロジェクトで参照されており、手動で追加しました

 <dependentAssembly>
    <assemblyIdentity name="System.Data.Linq" publicKeyToken="b77a5c561934e089"/>
    <bindingRedirect oldVersion="1.0.0.0-4.5.0.0" newVersion="4.0.0.0"/>
  </dependentAssembly>

web.config の実行時セクション。ただし、エラーはまだあります。

もう 1 つの問題は、DataContext ファイルを App_Code フォルダーに配置すると、別のエラーが発生することです。

Intellisense レポート: シンボル 'Select' を解決できません

Web アプリケーションをコンパイルして実行すると、デザイナー ファイルの datacontext ファイル内でランタイム エラーが発生します。

using System.Data.Linq;
using System.Data.Linq.Mapping;

シンボル 'Linq' を解決できません。

この Web プロジェクトは、標準の「ASP.NET Web フォーム アプリケーション」に基づいており、基本的なプログラミングをやめようとしているので、ここで何が間違っているのかわかりません。

4

4 に答える 4