2

Sql SelectMany を理解しようとしています。以下のクエリで使用して、Select に対して SelectMany を使用して結果がどのように生成されるかを確認します。代わりにここで select を使用できることはわかっています... Id が int で location が文字列のテーブル users があります。以下のクエリを実行すると、「System.String 型ではサポートされていないシーケンス演算子」という例外が発生します。SelectMany によって返された結果を反復処理し、結果をコンソールに出力する方法を教えてください。

UsersDataContext db = new UsersDataContext();

var results = db.Users.Where(u=> u.ID == 5 || u.ID == 6).SelectMany(u => u.Location);

foreach (var c in results)
{
    Console.WriteLine(c);
} 
4

1 に答える 1

2

.Select here を使用する必要があります。

SelectMany の MSDN から:

シーケンスの各要素を IEnumerable に射影し、結果のシーケンスを 1 つのシーケンスにフラット化します。

基本的に SelectMany は、コレクションを指すラムダを取得し、それを単一の結果セットにフラット化します。あなたの例の場所はコレクションではありません

于 2012-07-16T02:46:48.107 に答える