Я использую следующий запрос для получения набора результатов
var overlaps = from s in db.signups
join u in db.users on new { userid = s.userid } equals new { userid = u.studentid }
join a in db.activities on new { activityid = s.activityid } equals new { activityid = a.id }
where
s.userid != Convert.ToInt32(Request.Cookies["studentid"].Value) &&
(from signups in db.signups
where
signups.userid == Convert.ToInt32(Request.Cookies["studentid"].Value)
select new
{
signups.activityid
}).Contains(new { s.activityid })
orderby
u.studentid
select new
{
a.name,
u.firstname,
u.lastname,
u.studentid,
u.email
};
Я довольно новичок в LINQ, поэтому я написал Sql, а затем использовал Linqer для генерации LINQ, так что если это можно сделатьболее эффективно, пожалуйста, дайте мне знать.Сказав это, это не проблема.
Проблема в том, что, когда я делаю
foreach(var overlap in overlaps)
{
//do something
}
, он выдает ссылку на объект, а не ошибку установки.Это выполняется в приложении MVC 3.
Однако, когда оно запускается в консольном приложении, оно запускается без проблем;это просто не возвращает результатов.Я пытался использовать DefaultIfEmpty, но просто не могу найти ничего, что объясняет, как использовать это с анонимными типами.
Итак ... мой подход правильный?Если нет, то что мне делать по-другому?
Заранее спасибо.