在C#ASP.NET程序中有多个上下文是可以的吗?

时间:2011-05-28 17:35:51

标签: c# linq-to-sql

我正在使用WebForms的一个大项目,我希望使用LINQ TO SQL但是因为如果我将所有内容添加到该模型中,它会在VS中变慢(此外我仍然使用标准SQL),多个上下文可以吗?

编辑: 我说的是..我在数据库中有近100个表,我不能将它们全部添加到一个上下文中,因为我仍然使用原始sql很多..所以我虽然我可以分离整个事情并创建许多上下文基于操作。因此,如果我必须添加评估表单,那么上下文将与所有与评估表单相关的表进行交互。

感谢。

2 个答案:

答案 0 :(得分:2)

如果在db模式中有逻辑分离,则有多个上下文是有意义的。 此外,L2S不会阻止您使用原始SQL,甚至更多,您可以使用上下文的连接并利用它的方法来执行SQL查询。 您也可以使用L2S映射SP

具有多个上下文的另一个警告是,您将无法轻松地在上下文之间传递对象。在你的情况下,我更喜欢使用EF与POCO(可能甚至是新到达的代码第一种方法),使用它你将能够将对象从一个上下文传递到另一个上下文,否则你需要使用某种Object-to - 对象映射

UPD:这就是如何将LINQ2SQL与原始sql一起使用:

db.ExecuteQuery<Customer>("select * from dbo.Customers where City = {0}", "London");
db.ExecuteCommand("UPDATE Products SET QuantityPerUnit = {0} WHERE ProductID = {1}", "24 boxes", 5);

阅读这篇文章DataContext.ExecuteCommand Method

答案 1 :(得分:-1)

我不确定你在问什么,但一般来说,你不需要多个上下文。