2012-08-17 59 views
1

我正在尋找一個linq實體查詢,它執行下面的SQL的等價物。如何將常量對象與實體查詢結合使用?

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

我然後綁定所得對象列表(其可以是顯式的類的實例或匿名類),作爲一個組合框的列表源。我不需要Customer實體類的所有字段,但是如果得到的對象列表是這個類的實例,而不是一個不會成爲大問題的「存根」類,但顯然會有一些內存浪費。

回答

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(不null),以確保匿名類型匹配。使用具有兩個字段的命名類型(CustomerIdName)更好。

相關問題