在 ASP.NET MVC2 项目中使用 LINQ to SQL

Posted

技术标签:

【中文标题】在 ASP.NET MVC2 项目中使用 LINQ to SQL【英文标题】:Using LINQ to SQL in ASP.NET MVC2 project 【发布时间】:2010-04-24 08:12:04 【问题描述】:

嗯,我是这个 ORM 的新手。我们必须创建一个大型项目。我阅读了有关 LINQ to SQL 的信息。在高风险的项目中使用它是否合适。我个人发现它没有问题,但问题是一旦开始就没有回头路了。所以我需要 MSDN 上的 ORM 大师的一些反馈。实体框架会更好吗? (我对 LINK to SQL 有疑问,因为我在这里和那里阅读并听到了负面反馈)

我将使用 MVC2 作为框架。所以请在这方面给出关于LINQ to SQL的反馈。

Q2)另外我是存储过程的粉丝,因为它们是预先计算的并且可以解决问题,没有它们我从来没有工作过。我知道 LINQ to SQL 支持存储过程,但是放弃存储过程是否可行由于我们也需要快速开发,因此毫不费力地生成了漂亮的数据访问层。

Q3) 如果在 LINK to SQL 中对数据库中所需的某些字段进行了某些更改,数据访问层将如何适应这些更改。

【问题讨论】:

在此处查看我的答案:***.com/questions/2701952/… -- 这几乎是同一个问题,我的答案也适用于此。 【参考方案1】:

说到Linq-to-Sql vs Entity Framework,我强烈建议使用Entity Framework。随着 .NET 4.0 和 VS2010 的发布,Microsoft 在 Entity Framework(EF) 4.0 中添加了很多优点。让我只提几点:POCO 和 NTier 支持(这意味着您可以拥有一个带有简单实体类的单独库,当然 EF 仍然会意识到它们)、延迟加载、Sql 查询优化......还有你可以让 EF 生成您的实体(并且您可以选择修改 T4 生成模板),或者如果您需要更多控制权,您可以手动创建它们。此外,如果你的应用程序确实很大,使用 EF 4,现在你可以很好地分离你的层(你可以创建你的 Mocks 进行测试等......)。我不是 Web 开发人员,所以我无法就 mvc2 在这件事上给你任何提示。 q2-q3) - 在 EF 中,您可以进行预编译查询 - 如果您稍后观察到该查询性能并不是您所需要的。这将大大加快速度。如果您打算使用 EF 并且向数据库添加了一些更改,则可以通过单击轻松更新模型。 我知道我在 EF 上喋喋不休,而不是 Linq to sql :),但是嘿...我相信这更适合您的需求,您绝对应该为这个项目检查一下。还有,不知道微软未来会在LinqToSql上增加多少功能/投入多少。

干杯,

【讨论】:

EF4 仍然是一种两层方法,它确实比 Linq-to-SQL 带来更多的开销。对于仅使用 SQL Server 的简单场景,我仍然倾向于使用 Linq-to-SQL。对于企业应用程序和更复杂的场景,请使用 EF4。【参考方案2】:

好的预编译查询肯定会引起我的注意。

【讨论】:

请问您,您注册2个是为了什么?

以上是关于在 ASP.NET MVC2 项目中使用 LINQ to SQL的主要内容,如果未能解决你的问题,请参考以下文章

在哪里可以找到在 ASP .NET MVC2 中实现密码恢复的 C# 示例代码

在 Visual Studio 2010 中使用 ASP.NET MVC2 Web 应用程序以 .NET3.5 为目标?

如何在 ASP.NET MVC2 中使用下划线路由小写 URL('questions/add_to_favorites/123')?

asp.net mvc2.0重写MvcHandler

无法让 ELMAH 在 IIS7.5 上与 ASP.NET MVC2 一起使用

asp.net mvc2.0中如何将datatable对象传到view的前台然后获取datatable中表字段得值?