3

私は Entity Framework を使用しており、LINQ コードでクエリを実行したいと考えています。参考書「Entity Framework 4 In Action」からほぼそのままコピーした場合、コードはコンパイルされると思いました。

ここに私のコードがあります:

from a in db.addresses
where a.accountId == 1
Select o;

予期せず、インテリセンスは私のコードを受け入れませんでした。そこで、少し調べて、プロジェクト参照、web.config アセンブリ参照、および LINQ への参照を追加しました。

using System.Data.Linq;

を含めるように web.config を編集しました

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

それでも、Intellisense とコンパイル済みはキーワード「in」または db.addresses を受け入れません (db はコンテキストであり、ファイルの他の場所では次のような呼び出しを行うのに問題はありません:

users currentUser = db.users.Single(m => m.email == User.Identity.Name);

したがって、問題は私のdbコンテキストでもありません。スタック、asp.net、および「LINQ 構文がコンパイルされていません」を検索しましたが、それ以上の手がかりが見つかりません。

ここに私のコンパイラエラーがあります:

エラー 14 ; 予想される 147 20 AdamsStore

エラー 15 ; 予想される 147 23 AdamsStore

エラー 16 ; 予想される 148 23 AdamsStore

エラー 17 ; 予想される 148 39 AdamsStore

エラー 13 147 20 AdamsStore の無効な表現用語

エラー 8 ステートメントとして使用できるのは代入、呼び出し、インクリメント、デクリメント、および新しいオブジェクト式のみです 147 18 AdamsStore

エラー 10 ステートメントとして使用できるのは代入、呼び出し、インクリメント、デクリメント、および新しいオブジェクト式のみです 148 23 AdamsStore

エラー 7 The type or namespace name 'from' could not be found (using ディレクティブまたはアセンブリ参照がありませんか?) 147 13 AdamsStore

エラー 11 タイプまたはネームスペース名 'select' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?) 149 21 AdamsStore

4

1 に答える 1

3
  1. select小文字にする必要があります
  2. using System.Linq持っていても必要using System.Data.Linq
于 2012-10-20T19:46:57.803 に答える