我正在写涉及存储配置文件的应用程序。 我使用LINQ访问数据库,但保存配置文件时,有一个奇怪的问题。 当我保存它,将它写入到数据库正确的 - 但是当我离开这个页面并回来,老值仍然型材形式。
我的个人资料页:
if(!Page.IsPostBack) {
Profile p = Student.GetProfile(Int32.Parse(Session["userID"].ToString()));
if (p != null)
{
FirstNameTextBox.Text = p.FirstName;
LastNameTextBox.Text = p.LastName;
Address1TextBox.Text = p.Address1;
.....
}
而我的学生类:
public static Profile GetProfile(int uID)
{
var profile = (from p in db.Profiles
where p.uID == uID
select p).FirstOrDefault();
return profile;
}
我没有做任何花哨的缓存在任何地方,所以不知道在哪里旧值存储...
**编辑**
因此,它似乎是下降到一个全球性的LinqDataContext。 在我的学生上课,我有:
public class Student
{
private static LinqClassesDataContext db = new LinqClassesDataContext() { CommandTimeout = 36000 };
public static Profile GetProfile(int uID)
{
var profile = (from p in db.Profiles
where p.uID == uID
select p).FirstOrDefault();
return profile;
}
如果我给GetProfile方法它自己的DataContext,问题就迎刃而解了。
仍然很新的LINQ的,什么是有与使用的数据库相同的访问许多方法的类的最佳方式? 有了这样的全球背景下? 或每个方法使用它自己的数据上下文?