0

私はインターネット上のあらゆる場所を見てきました。私が見つけたのは、人々がエンティティのフレームワークを使用してデータベースと通信していることです。このフレームワークには、Contains() SQL メソッドを模倣する Any<> という関数があります。ANY<> メソッドを実装しようとしましたが、うまくいきません。変換タイプのエラーが発生し続けました。

だから私の質問はこれです... ANY<> 関数を実装する正しい方法は何ですか。誰かがすぐに答えてくれることを願っています。前もって感謝します!

- だから、いくつかの文脈のために、私はこのようなものを持っていました:

   public static List<PhotoAlbumDto> searchAlbumsFromDA(string inputName)
    {
        EzPrintsEntities db = new EzPrintsEntities();
        List<PhotoAlbum> albums = db.PhotoAlbums.ToList().Any(b => b.NAME == inputName);
    }

2番目のようなものは私に投げます:

エラー 14 型 'bool' を 'System.Collections.Generic.List' に暗黙的に変換できません C:\Users\cding\Documents\Visual Studio 2010\Projects\ConsoleApplication6\EZP.Album.Data\PhotoAlbumDA.cs 22 39 EZP.Album 。データ

これでエラーが発生する理由はわかっていると思いますが、修正方法がわかりません。特定の名前に一致する PhotoAlbum オブジェクトをデータベースで検索しようとしているだけです。

編集: 新しい質問: Where<> を使用して、その一部に一致するものを検索するにはどうすればよいですか?

例えば:

ユーザーが検索したい: 面白い

次に、私の検索関数は、funnygirls、funnydogs、funnypeople、funnybikes など、「funny」という単語を含むものをすべて返します...

Where<> を実装しましたが、上記の機能を実行していませんか? 修正はありますか?または任意の代替?

4

4 に答える 4

2

次のように、代わりに where を使用する必要があります。

db.PhotoAlbums.Where(b => b.NAME == inputName)

また、テーブル全体をアプリケーションのメモリに移動する他のメソッドを呼び出す前に ToList を使用しないでください。

于 2012-09-17T15:54:23.587 に答える
1

Any() は、Entity Framework とは関係ありません。

Any() は LINQ 拡張メソッドであり、a) コレクション内にオブジェクトが存在するか、b) 基準を満たすオブジェクトがコレクション内に存在するかを示します。

http://msdn.microsoft.com/en-us/library/system.linq.enumerable.any.aspx

あなたはおそらくAny()ではなく、「Where()」を求めています。Any はブール値を返します。 Where() は、渡した基準を満たす別のコレクションを返します。

Any を使用する正しい方法は次のようになります。

List<string> listOfCars = new List<string>() { "Yellow Car", "Blue Car", "Big Car" };
bool hasYellowCar = listOfCars.Any(c => c == "Yellow Car");
于 2012-09-17T15:54:30.900 に答える
1

特定の名前に一致する PhotoAlbum オブジェクトをデータベースで検索しようとしているだけです。

なぜあなたは何かを使いたいのですか?これに一致するものは DB にありますか? のブール値を返します。次のように考えてください。

Any: 私のリストにこれと一致するものはありますか?

場所: これに一致するものをリストから教えてください。

私はあなたが実際にどこに欲しいと思っていると思います:

db.PhotoAlbums.Where(b => b.NAME == inputName).ToList();
于 2012-09-17T15:54:48.713 に答える
0

これはうまくいくはずです

List<PhotoAlbum> albums = db.PhotoAlbums.Where(b => b.NAME == inputName).ToList();
于 2012-09-17T15:55:32.853 に答える