26

クエリを使用してデータベーステーブルから2つの要素を選択したいのですがLINQ、使用例を見ましたが、UNIONあまり経験がありませんが、これが必要なのかもしれませんが、修正できないエラーが発生し、とにかく修正可能かどうかわからない。だからここに私の質問があります:

    IList<String> materialTypes = ((from tom in context.MaterialTypes
                                   where tom.IsActive == true
                                   select tom.Name)
                                   .Union(from tom in context.MaterialTypes
                                   where tom.IsActive == true
                                   select (tom.ID))).ToList();

UNIONこれは、で使用しようとするIQueryableと不平を言っているようですIEnumarebale。私はこのように追加することでそれを修正しようとしましたToString()-(tom.ID).ToStringそれはエラーの下線をきれいにすることにつながりましたVisual-Studio-2010が、実行時に私は次のようになります:

{"LINQ to Entities does not recognize the method 'System.String ToString()' method, and this method cannot be translated into a store expression."}

タイ、レロン。

4

1 に答える 1

46

編集:

OK、LI​​NQtoEFのint.ToString()が失敗する理由を見つけました。この投稿を読んでください: Linqでintをstringに変換してエンティティに変換する際の問題

これは私の側で動作します:

        List<string> materialTypes = (from u in result.Users
                                      select u.LastName)
                       .Union(from u in result.Users
                               select SqlFunctions.StringConvert((double) u.UserId)).ToList();

あなたの場合は次のようになります。

    IList<String> materialTypes = ((from tom in context.MaterialTypes
                                       where tom.IsActive == true
                                       select tom.Name)
                                       .Union(from tom in context.MaterialTypes
                                       where tom.IsActive == true
                                       select SqlFunctions.StringConvert((double)tom.ID))).ToList();

ありがとう、私は今日何かを学びました:)

于 2013-02-22T10:55:02.497 に答える