Поскольку я изо всех сил пытаюсь изучить LINQ, мне удалось сгенерировать оператор SQL с «AND (0 = 1)» как часть предложения where. Мне просто интересно, распространен ли этот результат в плохо написанных запросах и это известные проблемы, которых следует избегать, или я делаю что-то совершенно обратное, чтобы закончить с этим.
Обновление
public static IEnumerable<ticket> GetTickets(stDataContext db,string subgroup, bool? active)
{
var results = from p in db.tickets
where
( active == null || p.active == active )
/*(active == null ? true :
((bool)active ? p.active : !p.active))*/ &&
p.sub_unit == db.sub_units.Where(c=>subgroup.Contains(c.sub_unit_name))
select p;
return results;
}
Если я игнорирую активную часть и просто запускаю
public static IEnumerable<ticket> GetTickets1(stDataContext db,string subgroup, bool? active)
{
return db.tickets.Where(c => c.sub_unit.sub_unit_name == subgroup);
}
Возвращает группы заявок, которые я хочу игнорировать активную часть.