У меня есть таблица с двумя столбцами, которые будут использоваться в качестве критериев фильтрации.Используя Linq to Entities, я хочу передать два значения и всегда возвращать наиболее близкое совпадение.Например, (1,2) должен возвращать (1,2), а не (ноль, 2) в качестве ближайшего.Если ни одно из значений не находит совпадения, то используется совпадение столбца Null, Null.
Ниже приведен пример кода.
Если в первых данных передано 3,3 (null, null)должен быть возвращен, так как нет совпадений.
Если передано 1,3, должны быть возвращены вторые данные (1, ноль).
Если передано 3,2,должны быть возвращены третьи данные (null, 2).
Если передано 1,2, должны быть возвращены четвертые данные (1,2).
Возможно ли это сделать в одномLinq-запрос, поскольку он генерирует попадание в базу данных?
public class Data
{
public string prop1 { get; set; }
public string prop2 { get; set; }
}
static void Main(string[] args)
{
List<Data> datas = new List<Data>
{
new Data
{
prop1 = null,
prop2 = null
},
new Data
{
prop1 = "1",
prop2 = null
},
new Data
{
prop1 = null,
prop2 = "2"
},
new Data
{
prop1 = "1",
prop2 = "2"
}
};
}