Linq to SQL使用全局datacontext来跟踪用户的变化?

时间:2012-07-20 04:17:40

标签: c# sql linq global datacontext

我遇到了一个设计困境,我不知道如何解决这个问题,因为我是整个Linq场景的新手。我打算使用datagridview创建一个winforms应用程序来显示我的数据库中的一些数据。用户可以使用按钮和其他东西来与数据交互并进行更改。但我不知道如何处理这个问题,要么在我的表单中有一个全局datacontext来跟踪更改,然后使用.submitChanges()提交并让linq完成场景后面的所有操作,或者每个按钮事件,我创建了一个新的datacontext,但由于linq无法再跟踪我的更改,我创建了一种自定义数据结构,以跟踪用户更改,然后更新数据库。

无论我怎么想,这听起来像是有一个全局的datacontext让它变得更容易(编码方式),但我读到我可能会遇到问题?

将有多个用户在连接到中央数据库的同时使用该应用程序。我愿意接受任何建议,只是不确定这样做的正确方法。

谢谢!

1 个答案:

答案 0 :(得分:1)

在我的ASP.NET应用程序中,我们为每个请求保留一个全局上下文,因此表单的全局上下文的想法也不错。特别是如果要保存相互关联的数据,从多个上下文查询的数据,当您尝试将其相互关联时,将导致错误。因此,从这个角度来看,全球背景是有益的。特别是因为Windows窗体可以保留绑定到它的对象(与ASP无关,因为它的无状态),这些更改将更好地同步。

您必须记住的唯一缺点是,如果要加载大量数据,全局上下文,如果要跟踪实体更改,将所有这些对象保留在内存中,并且上下文可能会增长到它可能影响性能...

HTH。