Я только что столкнулся с странной проблемой Linq To Entities. Вот фон: - Entity Code First - Этот объект отображается на SQL Server ViewLinq To Entities bad SQL casting in where where
При попытке в deffered выполнение таких как
byte id = 1;
var query = myDbSet.Where(s => s.SiteId == id);
query = query.Where(s => s.Type == "Some Type");
var lst = query.ToList();
я получаю тайм-аут от SQL Server (запрос длится 1 мин).
При профилировании SQL-запроса я вижу странное литье из SiteId в int, тогда как это tinyint. Выполняя тот же запрос, удалив бросок, запрос длится 3 секунды!
Как заставить тип параметра не иметь какое-либо SQL-литье?
Боковое примечание - ваше заявление 'query.Where (s => s.Type ==" Some Type ");' фактически ничего не делает, потому что вы его нигде не назначили. Если вы хотите отфильтровать это, вам нужно будет выполнить запрос = query.Where (s => s.Type == "Some Type"); ' – entropic
хорошо видно! Это не настоящий код ... Я написал его в вопросе, чтобы могли быть некоторые ошибки ... Изменен вопрос. – boblemar