如何将常量对象与实体查询结合起来?

时间:2012-08-17 08:58:45

标签: linq-to-entities

我正在寻找一个linq to entity查询,该查询与以下SQL相同。

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

然后,我将绑定结果的对象列表(可以是显式类或匿名类的实例)作为组合框的列表源。我不需要Customer实体类的所有字段,但是如果得到的对象列表是这个类的实例而不是一个不会成为大问题的“存根”类,但显然会有一些内存浪费。

1 个答案:

答案 0 :(得分: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)的命名类型会更好。