내 프로젝트에서 몇 가지 문제가 있습니다. 엔티티를 업데이트하려고하면 다른 유형의 오류가 발생합니다.LINQ :: 동시 Data Context를 사용하여 동시성 문제 방지
인터넷에서 읽습니다. 내가의 DataContext를 생성하는 방법에서 엔티티 클래스의 객체를 얻고 여기에 또 다른 DataContext를 로컬로 생성되기 때문에 로컬
및 업데이트 방법 ID를 업데이트하지 않습니다 - 이러한 오류는
1 때문이다. 테이블에 타임 스탬프 열을 추가하면 (. 내 프로젝트에 영향을주지 않는 내가이 시도)
일 - 내가이 문제
1에 관한 많은 기사를 발견
(심지어는 예외를 throw하지 않습니다) 녀석은 모두를 위해 단일 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();
}
를 작성하여 이런 짓을.
내 문제가 해결되었습니다. 그러나 지금 질문은이다.
위의 기술을 웹 기반 응용 프로그램에서 사용하는 것이 좋은 방법일까요 ???
하나라고 -이 문서는 또한 함정과 몇 가지 이유 왜 "글로벌"데이터 컨텍스트 솔루션을 사용하지 설명 : http://blog.codeville.net/2007/11/29/linq-to-sql-the-multi-tier-story / –