1. ホーム
  2. c#

[解決済み] クエリパターンの実装が見つかりませんでした。

2022-02-01 10:49:35

質問

私のシルバーライト・アプリケーションでは、LINQを使用してデータベース接続を作成しようとしています。 まず、新しいLINQ to SQLクラスを追加し、その中に"tblPersoon"という名前のテーブルをドラッグしています。

そして、サービスファイルの中で、以下のクエリを実行してみます。

[OperationContract]
public tblPersoon GetPersoonByID(string id)
{
    var query = (from p in tblPersoon where p.id == id select p).Single();

しかし、tblPersoonでは、以下のようなエラーが発生します。

ソースタイプに対するクエリパターンの実装が見つかりませんでした。 'SilverlightApplication1.Web.tblPersoon'です。 'Where'が見つかりませんでした。

また、以下を試しても

var query = (from p in tblPersoon select p).Single();

Select'が見つからないというエラーが発生します。

私のテーブルのために生成されたクラスのコードは、ここにあります。 http://pastebin.com/edx3XRhi

何が原因で、どうすれば解決できるのでしょうか?

ありがとうございました。

解決方法は?

tblPersoon 実装 IEnumerable<T> ? を使って行う必要があるかもしれません。

var query = (from p in tblPersoon.Cast<Person>() select p).Single();

このようなエラー( クエリパターンの実装が見つかりませんでした。 )は、通常、次のような場合に発生します。

  • LINQ 名前空間の使い方が抜けている ( using System.Linq )
  • クエリ対象の型が実装されていない IEnumerable<T>

編集 :

クエリタイプは別として ( tblPersoon の代わりに、プロパティ tblPersoons を定義するクラス)も必要です。 tblPersoons プロパティ)のようなものです。

public tblPersoon GetPersoonByID(string id)
{
    var context = new DataClasses1DataContext();
    var query = context.tblPersoons.Where(p => p.id == id).Single();
    // ...