0

我找不到如何实现以下场景的答案(我不知道要寻找什么方法)。我使用C#, .NET FW4.5,Linq到 SQL 和设计模式存储库。

如果我想选择所有设备,请使用以下代码:

/// <summary>
/// Get all Devices
/// </summary>
/// <returns></returns>
public IQueryable<Device> GetDevices()
{
    return myDataContext.Devices;
}

如果我想按 ID 选择设备,请使用以下代码:

/// <summary>
/// Get Device by ID
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public Device GetDevice(int id)
{
    return myDataContext.Devices.SingleOrDefault(
        d => d.intDeviceId == id);
}

但是我该如何实现以下情况?

选择所有设备,其中有一些条件(并返回IQueryable<Device>

4

2 回答 2

3

尝试:

return myDataContext.Devices.Where(
        d => yourConditions).AsQueryable();
于 2013-02-10T10:44:18.507 回答
2

你可以像这样使用它:

public IQueryable<Device> GetDeviceUsingPredicate(Expression<Func<Device,bool>> predicate)
{
    return myDataContext.Devices.Where(predicate).AsQueryable();
}

要与泛型一起使用:

public IQueryable<T> GetDeviceUsingPredicate(Expression<Func<T,bool>> predicate)
{
    return myDataContext.GetTable<T>().Where(predicate).AsQueryable();
}
于 2013-02-10T10:46:52.547 回答