繁体   English   中英

将自定义Linq-2-SQL迁移到Entity Framework

[英]Migrating customized Linq-2-SQL to Entity Framework

我有一个基于.net 3.5中的Linq-2-SQL构建的数据层。 我们正在考虑很快迁移到.Net 4. 当我们开始原始开发时,我有兴趣将EF用于数据层,但发现它在.Net 3.5中并不是一个真正的选项。 现在我们正在升级,我正在思考它。

我意识到.Net4仍然支持L2S,但是我希望切换到更活跃的开发领域,以便将来可以成为业务核心的系统的未来验证。 (我的理解是基于诸如“我们说我们会改进它的核心(L2S)并在有意义的地方添加客户请求但是实体框架将成为主要关注点”这样的陈述。来自Damien Guard的评论到这篇文章

使它复杂化的是我们为L2S实现做了一些改进:

  • 我们已经定制了.tt生成文件和L2ST4。
  • 我们正在为所有CRUD操作(我们自动生成)使用存储过程,因为这允许我们根据需要在特定表上打开/关闭粒度审计跟踪。

我所知道的其余大部分内容都是可以的,因为我自己在EF4中完成了它(事实上很多都是在EF4数据库上开始的),但是我想知道上面的自定义是否会成为问题。

所以:

  • 我们还可以拥有定制的.tt类型生成系统(或类似的东西)吗?
  • 我们还可以使用自己定义的sprocs来进行CRUD吗?

注意:如果我们使用EF,我可能会使用Database First版本。

我们还可以拥有定制的.tt类型生成系统(或类似的东西)吗?

是。 在VS 2012中,您可以使用DbContext生成器,该生成器使用T4模板生成DbContext和持久性无知类。

添加它并将其指向edmx文件后,您可以修改所有要自定义输出的模板。

如果您正在使用VS.NET 2010,那么您可以从Visual Studio库安装EF 5.x DbContext Generator for C#扩展,以安装模板生成器并将其添加到VS.NET中的“添加项”菜单中。

我们还可以使用自己定义的sprocs来进行CRUD吗?

是的,这只是将概念模型(您在edmx文件中使用的内容)映射到物理模型(数据库的表示)的问题。 在映射中,您将指定存储过程,而不是动态完成。

Julie Lerman详细介绍了如何将CRUD操作映射到存储过程的MSDN文档中标题为“ 实体框架中的存储过程 ”的部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM