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

C# 在C ASP.NET程序中可以有多个上下文吗?,c#,linq-to-sql,C#,Linq To Sql,我在一个使用WebForms的大型项目中,我希望使用LINQ to SQL,但因为在VS中速度会变慢,如果我将所有内容添加到该模型中,而且我仍然使用标准SQL,可以使用多个上下文吗 编辑: 我刚才说的是。。我在数据库中有将近100个表,我不能在一个上下文中添加它们,因为我仍然大量使用原始sql。。所以我想我可以把整个事情分开,根据操作创建许多上下文。因此,如果我必须添加评估表单,那么上下文将与所有与评估表单相关的表交互 谢谢。我不确定您在问什么,但通常情况下,您不需要多个上下文。我不确定您在问什

我在一个使用WebForms的大型项目中,我希望使用LINQ to SQL,但因为在VS中速度会变慢,如果我将所有内容添加到该模型中,而且我仍然使用标准SQL,可以使用多个上下文吗

编辑: 我刚才说的是。。我在数据库中有将近100个表,我不能在一个上下文中添加它们,因为我仍然大量使用原始sql。。所以我想我可以把整个事情分开,根据操作创建许多上下文。因此,如果我必须添加评估表单,那么上下文将与所有与评估表单相关的表交互


谢谢。

我不确定您在问什么,但通常情况下,您不需要多个上下文。

我不确定您在问什么,但通常情况下,您不需要多个上下文。

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

拥有多个上下文的另一个警告是,您将无法在上下文之间轻松传递对象。在您的例子中,我更喜欢使用EF和POCO,甚至可能是新到的代码优先方法,使用它您将能够将对象从一个上下文传递到另一个上下文,否则您将需要使用某种对象到对象的映射

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);

阅读本文

如果您在db模式中有逻辑分离,那么使用多个上下文是有意义的。 L2S也不会阻止您使用原始sql,更重要的是,您可以使用上下文的连接并利用它的方法来执行sql查询。 还可以将SP映射到L2S

拥有多个上下文的另一个警告是,您将无法在上下文之间轻松传递对象。在您的例子中,我更喜欢使用EF和POCO,甚至可能是新到的代码优先方法,使用它您将能够将对象从一个上下文传递到另一个上下文,否则您将需要使用某种对象到对象的映射

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);

阅读这篇文章

如果你不确定他在问什么,你怎么能提供答案?如果你不确定他在问什么,你怎么能提供答案?数据库非常庞大。。从一开始我们就使用原始sql,这对于这样一个项目来说绝对是错误的方法,但是我们在asp.net中是新手。我不想陷入复杂的事情,因为我的时间很宝贵,但我想我可以通过构建一个上下文并从现在开始构建它来节省时间。。一张桌子一张桌子,而不是自己上课。你仍然建议我使用EF还是我应该坚持L2S?据我所知。。有一个表不需要与其他表交互,因此可能构成上下文。您可以使用EF,只需重新生成上下文向其中添加新表,唯一的问题是,在添加带有外键的表时,您需要添加所有相关表,否则,你可能会在EF中遇到恼人的错误。我会坚持使用EF,因为它提供了更多的功能,因为它将概念模式映射到数据库模式。数据库非常庞大。。从一开始我们就使用原始sql,这对于这样一个项目来说绝对是错误的方法,但是我们在asp.net中是新手。我不想陷入复杂的事情,因为我的时间很宝贵,但我想我可以通过构建一个上下文并从现在开始构建它来节省时间。。一张桌子一张桌子,而不是自己上课。你仍然建议我使用EF还是我应该坚持L2S?据我所知。。有一个表不需要与其他表交互,因此可能构成上下文。您可以使用EF,只需重新生成上下文向其中添加新表,唯一的问题是,在添加带有外键的表时,您需要添加所有相关表,否则,您可能会在EF中遇到恼人的错误。我会坚持使用EF,因为它提供了更多的特性,因为它将概念模式映射到数据库模式