Я столкнулся с некоторыми проблемами в моем проекте. когда я пытаюсь обновить сущность, это дает мне другой тип ошибок.
Я читаю из сети. эти ошибки потому что
1 - Я получаю объект класса сущности из метода, который создает DataContext локально
и в методе обновления id не обновляется, потому что здесь другой DataContext создается локально.
(даже это не исключение)
Я нашел много статей, связанных с этой проблемой
1 - Добавление столбца метки времени в таблицу (не влияет на мой проект. Я пробовал это)
один парень сказал, что использует ОДИН DataContext для всех.
я сделал это, создав следующий класс
public class Factory
{
private static LinqDemoDbDataContext db = null;
public static LinqDemoDbDataContext DB
{
get
{
if (db == null)
db = new LinqDemoDbDataContext();
return db;
}
}
}
public static Student GetStudent(long id)
{
LinqDemoDbDataContext db = Factory.DB;
//LinqDemoDbDataContext db = new LinqDemoDbDataContext();
Student std = (from s in db.Students
where s.ID == id
select s).Single();
return std;
}
public static void UpdateStudent(long studentId, string name, string address)
{
Student std = GetStudent(studentId);
LinqDemoDbDataContext db = Factory.DB;
std.Name = name;
std.Address = address;
db.SubmitChanges();
}
в этом случае я хочу обновить данные студента.
это решило мою проблему. но теперь вопрос.
Это хороший подход, чтобы использовать вышеописанную технику в веб-приложении ???