n 分层架构中的实体框架 - 要遵循的最佳实践?

     2023-02-24     169

关键词:

【中文标题】n 分层架构中的实体框架 - 要遵循的最佳实践?【英文标题】:Entity Framework in a n tiered architecture - Best Practices to follow? 【发布时间】:2010-12-25 02:30:48 【问题描述】:

我一直在阅读 MSDN 文章 http://msdn.microsoft.com/en-us/magazine/cc700340.aspx

但想知道在 asp.net、n 分层应用程序中使用实体框架(.net 框架 3.5 sp1)是否有其他/替代最佳实践。

【问题讨论】:

我认为您的意思是分层架构,而不是分层。对吗? 【参考方案1】:

我认为与实体框架一起使用的常见设计模式是存储库模式,我不会提供链接,因为谷歌搜索会返回比我可以在此处发布的更多信息。它将帮助您将数据访问代码隐藏在允许更轻松的测试和关注点分离的接口后面。

我认为您在最佳实践方面所做的任何选择都将在很大程度上取决于您使用的工具。如果您使用的是标准 ASP.NET,那么我建议您使用链接到的文章中建议的 MVP 模式,以帮助您分离关注点并创建可测试的代码。但是,如果您使用的是 ASP.NET MVC,那么 MVP 就无关紧要了,因为该框架可以帮助您分离您的关注点。多了解您的环境背景可能有助于提出建议。

【讨论】:

一篇关于存储库模式的好文章是这里的代码项目文章:codeproject.com/KB/database/ImplRepositoryPatternEF.aspx【参考方案2】:

值得注意的是,作为 .NET 4 和 EF4 的一部分,这是一个备受关注的领域。

他们现在支持 POCO 以及自我跟踪实体,两者都可以在层和层之间来回发送(包括 WCF 边界)。

请查看this blog entry,了解有关自我跟踪实体的更多信息。

【讨论】:

【参考方案3】:

我喜欢将 UnitOfWork 模式与 DDD 和服务层一起使用。我不会将我的域对象传递给服务层以外的任何层。即使这样,我的域对象也被接口抽象了。服务层使用适配器模式或远程外观模式将 dto 对象传递给其客户端。

【讨论】:

> 不要在层之间传递你的实体你的意思是,不要在层之间传递你的实体吗? 通常我使用接口在域和服务层之间传递,并使用 dtos 在服务和表示层之间传递。无论层级如何,我都会这样做。

分层架构和实体框架的类命名约定

】分层架构和实体框架的类命名约定【英文标题】:ClassNamingConventionswithLayeredArchitectureandEntityFramework【发布时间】:2011-08-1201:23:36【问题描述】:我正在设计一个分层架构(服务/业务逻辑层、数据访问层),并且正在努力解决... 查看详情

实体框架中多个“包含”的最佳实践是啥?

】实体框架中多个“包含”的最佳实践是啥?【英文标题】:Whatisthebestpracticeformultiple"Include"-sinEntityFramework?实体框架中多个“包含”的最佳实践是什么?【发布时间】:2013-07-0523:19:27【问题描述】:假设我们在数据模型... 查看详情

实体框架和 ASP.NET 的最佳实践

】实体框架和ASP.NET的最佳实践【英文标题】:BestPracticesforEntityFrameworkandASP.NET【发布时间】:2010-09-1422:42:59【问题描述】:我一直让自己发疯,试图让实体框架在ASP.NET环境中按预期(或至少按我预期)工作,特别是在尝试保存... 查看详情

C# 实体框架 - 优化/最佳实践

】C#实体框架-优化/最佳实践【英文标题】:C#EntityFramework-Optimization/BestPractices【发布时间】:2021-04-3013:34:19【问题描述】:我有一个具有以下结构的实体框架数据库:“Lots”是零件的命名集合“部件”是单独的部件“站”是零... 查看详情

javaweb应用的代码分层最佳实践

JavaWeb应用的代码分层最佳实践代码分层,对于任何一个JavaWeb开发来说应该都不陌生。一个好的层次划分不仅可以能使代码结构更加清楚,还可以使项目分工更加明确,可读性大大提升,更加有利于后期的维护和升级。从另外一... 查看详情

不使用实体框架的 MVC 架构

】不使用实体框架的MVC架构【英文标题】:MVCarchitecturewithoutusingEntityFramework【发布时间】:2013-09-2619:12:49【问题描述】:我对MVC架构完全陌生,对架构有一些疑问,主要是由于没有使用实体框架,而是我一直在使用带有数据表和... 查看详情

n 层架构 - BLL、DAL 和接口。啥是最佳实践?

】n层架构-BLL、DAL和接口。啥是最佳实践?【英文标题】:n-layeredarchitecture-BLL,DALandinterfaces.Whatisbestpractice?n层架构-BLL、DAL和接口。什么是最佳实践?【发布时间】:2011-03-0812:05:45【问题描述】:我有一个关于n层架构的问题。在... 查看详情

遵循/阅读大型邮件列表的最佳实践?

...件列表的订阅者,其中一些比其他的更新。遵循这些列表中的所有信息的最佳做法是什么?您曾经管理过的最佳客户有哪些?我敢肯定,我不是唯一一个试图从这种嘈杂的通信方式中获得最佳信号的人:)【问题讨论】:gweep.ca/~edm... 查看详情

云存储架构框架设计|最佳实践

...储技术应运而生。本文深入剖析了云存储通用框架、硬件架构以及其底层原理这三个技术层面的差异性,为云存储架构框架设计提供了理论依据;再结合细分行业及其业务应用场景的差异性需求,最终确定了满足企业需求的云存... 查看详情

7个pythonapi最佳实践

...PI的5条原则是什么?RESTfulAPI的5条原则是:客户端-服务器架构:客户端和服务器应该是分离的,它们之间有清晰的接口。无状态:每个请求都应该 查看详情

在微服务架构中组织授权的最佳实践?

】在微服务架构中组织授权的最佳实践?【英文标题】:Bestpracticetoorganizeauthorizationinmicroservicearchitecture?【发布时间】:2016-05-2416:45:39【问题描述】:例如,我有3个服务:身份验证卖家买家他们每个人都有自己的数据库、模型、... 查看详情

基于实体属性确保 CoreData 实体唯一的最佳实践

...:2011-02-0315:40:15【问题描述】:我要做的是确保我的图表中的实体是唯一的。例如,任何两个用户都不应拥有相同的社会保险号。我见过的两种解决方案是:1)索引您的实体并在创建新对象之前使用谓词搜索匹配的实体2 查看详情

实体框架 - 分层设计 - 将连接字符串放在哪里?

】实体框架-分层设计-将连接字符串放在哪里?【英文标题】:EntityFramework-layereddesign-Wheretoputconnectionstring?【发布时间】:2010-10-2523:22:04【问题描述】:我使用分层架构和实体框架作为我的数据层,顶部有一堆包含Linq-To-Entities查... 查看详情

网关架构设计最佳实践

】网关架构设计最佳实践【英文标题】:Gatewayarchitecturedesignbestpractices【发布时间】:2019-06-0723:10:08【问题描述】:我正在构建一个网关,作为一组下游端点的代理。其中一个要求是能够对使用jwt传入的每个请求进行身份验证/授... 查看详情

从数据存储区查询大量 ndb 实体的最佳实践

】从数据存储区查询大量ndb实体的最佳实践【英文标题】:Bestpracticetoquerylargenumberofndbentitiesfromdatastore【发布时间】:2012-07-1514:23:05【问题描述】:我在使用AppEngine数据存储时遇到了一个有趣的限制。我正在创建一个处理程序来... 查看详情

在 ASP.NET WebApi 中路由相关实体的最佳实践是啥

...【问题描述】:我正在使用具有链接实体的WebApi应用程序中的实体。例如:EntityStreet有以下相关资源:City实体City具有:Re 查看详情

将 C 组件集成到 C++ 框架中的最佳实践是啥?

】将C组件集成到C++框架中的最佳实践是啥?【英文标题】:What\'sthebestpracticeforintegratingCcomponentsintoaC++framework?将C组件集成到C++框架中的最佳实践是什么?【发布时间】:2011-03-2902:15:16【问题描述】:将C组件放入C++框架的最佳实... 查看详情

保管 EAV 的最佳实践

...两个表。我想知道人们用来将这些表移动到DataVault2.0模型中的最佳方法是什么。【问题讨论】:【参考方案1】:在处理将数据存储在EAV模型中的RDBMS时,我们只是将这些表制作成多活动卫星,并将实体作为我们存储在HUB中的业务... 查看详情