我正在编写一个涉及存储配置文件的应用程序。我正在使用 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 来说仍然很新,拥有一个具有众多方法的类的最佳方法是使用相同的数据库访问权限?有这样的全球背景吗?还是每种方法都使用自己的数据上下文?