我还是 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),但是有人能告诉我什么是前进的最佳方式吗?