у меня есть эти данные:EF LINQ запрос, где встретится весь список или массив
class MyTableItem
{
public long id { get; set; }
public long listId { get; set; }
public long listFieldValue { get; set; }
public long parentId { get; set; }
}
и:
var myData = new MyTableItem[]
{
new MyTableItem { id = 1, listId = 1, listFieldValue = 100, parentId = 1 },
new MyTableItem { id = 2, listId = 2, listFieldValue = 130, parentId = 1 },
new MyTableItem { id = 3, listId = 3, listFieldValue = 170, parentId = 1 },
new MyTableItem { id = 4, listId = 4, listFieldValue = 170, parentId = 1 },
new MyTableItem { id = 5, listId = 1, listFieldValue = 100, parentId = 2 },
new MyTableItem { id = 6, listId = 2, listFieldValue = 130, parentId = 2 },
new MyTableItem { id = 7, listId = 3, listFieldValue = 170, parentId = 2 },
new MyTableItem { id = 8, listId = 4, listFieldValue = 270, parentId = 2 },
...(continue)
};
var myMatchConditions = new int?[][] //id, rangeTypeId(equal, more, less, between), from, to
{
new int?[] { 1, 1, 100, null },
new int?[] { 2, 2, 125, null },
new int?[] { 3, 3, null, 175 },
new int?[] { 4, 4, 130, 180 }
...(can continue more)
};
Теперь мне нужно знать, какие MyData (группеПо parrentId) подбираются мои условия,
позвольте мне объяснить подробнее:
Я хочу знать, какой parrent Id имеет listFieldValue где:
1) (listId == 1) & & (listFieldValue == 100)
и
2) (listId == 2) & & (listFieldValue> 125)
и
3) (listId == 3) & & (listFieldValue < 175)
и
4) ((listId == 4) &(listFieldValue> 130) & & (listFieldValue < 180))
он должен вернуть (1) parrentId.
Are вы уверены, что первым условием является '(listId == 1) && (listFieldValue == 100)', а не '(listId == 1) && (listFieldValue> 100)'? – ekad
@ekad да, у меня есть 4 типа диапазона (равный, больше, меньше, между). Позвольте мне добавить в мой вопрос. –