1

次の SQL に相当するエンティティ クエリへの linq を探しています。

select null, '<None>'
union select CustomerId, Customer from Customers

次に、オブジェクトの結果のリスト (明示的なクラスまたは匿名クラスのインスタンスである可能性があります) を、コンボ ボックスのリスト ソースとしてバインドします。Customer エンティティ クラスのすべてのフィールドが必要なわけではありませんが、結果のオブジェクト リストが「スタブ」クラスではなくこのクラスのインスタンスである場合、大きな問題にはなりませんが、明らかにメモリの浪費が発生します。

4

1 に答える 1

0

メモリ内で実行します:

Ext.ToEnumerable(new {CustomerId = 0, Name = "<none>"})
    .Concat(db.Customers
        .Select(c => new {CustomerId = c.CustomerId, Name = c.Name}).ToList());

ToEnumerable素敵な小さなユーティリティ関数はどこにありますか:

public static class Ext
{
    public static IEnumerable<T> ToEnumerable<T>(params T[] items)
    {
        return items;
    }
}

匿名型が一致することを確認するためにCustomerId = 0(not )を使用していることに注意してください。null2 つのフィールド (CustomerIdおよびName) で名前付き型を使用することをお勧めします。

于 2012-08-17T14:14:39.470 に答える