私はまだ LINQ に不慣れで、DataContext をクラスのどこに配置するかを知る上でいくつかの問題を抱えています。
これが私が試したことです:
public class Student
{
private static LinqClassesDataContext db = new LinqClassesDataContext();
public static Profile GetProfile(int uID)
{
var profile = (from p in db.Profiles
where p.uID == uID
select p).FirstOrDefault();
return profile;
}
}
しかし、結果のキャッシュ (?) に問題があります - この問題を参照してください: ASP.net/Linq での奇妙なキャッシュの問題
次に、クラスの各メソッドに DataContext を入れてみました。
public class Student
{
public static Profile GetProfile(int uID)
{
using (LinqClassesDataContext db = new LinqClassesDataContext())
{
var profile = (from p in db.Profiles
where p.uID == uID
select p).FirstOrDefault();
return profile;
}
}
}
しかし、アプリケーションで「Dispose 後に DataContext にアクセスしました」というエラーが発生しました。
したがって、これが行われるのを見た他の唯一の方法は次の方法です。
public class Student
{
public static Profile GetProfile(int uID)
{
LinqClassesDataContext db = new LinqClassesDataContext();
{
var profile = (from p in db.Profiles
where p.uID == uID
select p).FirstOrDefault();
return profile;
}
}
}
しかし、これは最も効率的な方法ではないようです。おそらく私はLinqを間違って使用しています(私はASP.net'erを独学しています)が、前進するための最良の方法について教えてもらえますか?