私は結果がLINQ to Sqlが空であり、オブジェクト参照がオブジェクトのインスタンスに設定されていません。エラー
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を書いたんだ設定し、これをより効率的に行うことができますので、もし、LINQを生成するためにLinqerを使用取得するには、次のクエリを使用しますそれから私に知らせてください。それを言って、これは問題ではありません。
問題は、私は
foreach(var overlap in overlaps)
{
//do something
}
を行う際に、エラーが設定されていないオブジェクト参照を投げるということです。これはMVC 3アプリケーションで実行されています。
ただし、これをコンソールアプリケーションで実行すると問題なく実行されます。結果を返しません。私はDefaultIfEmptyを使用しようとしましたが、匿名型でこれを使用する方法に対処するものは何も見つかりません。
だから ...私のアプローチは正しいですか? そうでない場合は、どうすればよいですか?
ありがとうございます。
問題は、あなたのLINQ文です。その内部のオブジェクトの1つが例外を引き起こしています。あなたがそのforeachを打つとLINQが実行されるだけです。 – scottheckel
@Hexxagonal私の推測は、クエリ文字列パラメータです。 – asawyer
クッキーが壊れています。おっとっと。 – asawyer