私のプロジェクトでいくつかの問題に直面しています。エンティティを更新しようとすると、さまざまな種類のエラーが発生します。
ネットから読んだ。これらのエラーの原因は
1 - DataContext をローカルに作成するメソッドからエンティティ クラスのオブジェクトを取得しています
ここでは別の DataContext がローカルに作成されるため、 update メソッドでは id は更新されません。(例外はスローしません)
この問題に関連する多くの記事を見つけました
1 - テーブルにタイムスタンプ列を追加する (私のプロジェクトでは効果がありません。私はこれを試しました)
ある男は、全員に SINGLE 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();
}
この場合、学生の詳細を更新したいと思います。
それは私の問題を解決しました。しかし今問題はです。
Web ベースのアプリケーションで上記の手法を使用するのは良い方法ですか?