私はいくつかの特定のデータのためにいくつかの形式のフィルタ方法を利用することに本当に闘っています。子のフィルタリングを心配することなく、デバイス上のフィルタリング(下記のクラスを参照)List<DeviceQueue>
は期待どおりに完全に動作します。しかし、私がMessageIdやSequenceIdをフィルタリングしようとすると、その結果は、私のフィルタを無視して、MessageQueueテーブル内のすべてのエントリを返します。デバイスのためのLinq To Entities - リストのフィルタ
参照Data.Model:
public class Device : EntityBase
{
public string SerialNumber { get; set; }
public virtual DeviceType DeviceType { get; set; }
public virtual List<DeviceQueue> MessageQueue { get; set; }
}
DeviceQueueを参照Data.Model:
public IQueryable<Device> Filter(IQueryable<Device> device)
{
IQueryable<DeviceQueue> deviceQueue = Enumerable.Empty<DeviceQueue>().AsQueryable();
//Because it is IQueryable, the data is not fetched until you bind it so it only pulls the data you need.
if (DeviceId != null)
{
device = device.Where(d => d.Id == DeviceId);
}
if (SequenceId != null)
{
device = device.Where(d => d.MessageQueue.Any(q => q.SequenceId == SequenceId.Value));
}
if (MessageId != null)
{
device = device.Where(d => d.MessageQueue.Any(q => q.MessageId == MessageId));
}
return device;
}
達成しようとしていることを教えてください。 –
本当に私の悪い、欠けている情報。今すぐ参照:)ありがとう:) – David
まだ明確ではありません。実際のプロジェクトをここに置く必要はなく、**最小**デモを作成してください。 –