6

LINQ を使用して MSSQL DB から 2 つの列を選択したいだけです。

SQLは

select table.col1,table.col2 from table

私は試した

IList<string> myResults =
(
    from data in dbconn.table
    where table.col5 == null
    select new { 
        col1=data.Id.ToString(),
        col2=data.col2
    }
).Take(20).ToList();

しかし、これはうまくいきませんでした。

それは言う

cannot convert type  list <AnonymousType#1> to Ilist<string>
4

3 に答える 3

4

まず、文字列のリスト ( List<string>) は、要素内に 2 つではなく 1 つの文字列のみを持つことができます (ここでやろうとしていること) 型を var に変更すると、例外は修正されますが、それが必要な解決策であるかどうかはわかりません。

var myResults =
(
    from data in dbconn.table
    where table.col5 == null
    select new { 
        col1=data.Id.ToString(),
        col2=data.col2
    }
).Take(20).ToList();
于 2013-10-01T00:46:17.830 に答える
3

上記のさまざまな例で示されているように、linq Select を使用して複数のフィールドを選択できます。これは匿名型として返されます。この匿名型を避けたい場合は、簡単な方法があります。

var items = myResults.Select(f => new [] { f.Col1, f.Col2 }).SelectMany(item => item).Distinct();

これで問題は解決すると思います

于 2015-01-03T13:24:26.347 に答える