jjzjj

javascript - Breeze 是否消除了单页应用程序中对 DTO 的需求?

我正在构建我的第一个SPA,我已经为我的每个实体构建了DTO,但我发现Breeze,它似乎负责将您的更改序列化为最低限度的包以优化更新/添加/等。我构建DTO的原因是为了“扁平化”我的数据并限制我在网络上传输的数据量,但我想知道如果Breeze处理它我是否还需要这个开销。 最佳答案 DTO是有原因的。“扁平化数据”不是其中之一。也不是“限制我传输的数据量”。Breeze在对象图方面做得很好。想象一下,为一位客户发送100个订单。您不想在每个订单DTO上重复客户名称。借助Breeze,您可以查询客户订单(使用“展开”),并获得一份客户

postgresql - 使用 xo 从 postgres 数据库表模式生成 DTO 结构

我只是想知道是否有人使用过xo.我有一个Postgres数据库,里面有一堆表和东西。我似乎无法使用xo从postgres表结构生成DTOstruct。这个内置的xotemplate似乎创建了一个struct,我相信xo默认使用内置模板,但我在运行时得到的都是xo--verbose--suffix'.go'pgsql://myusername:mypass@localhost:myport/mydb?sslmode=disable-ointernal/qo/models-pqo是一堆与我的项目或我的数据库中的模式完全无关的文件。 最佳答案

为什么我们需要DTO/ViewModels而不是在MVC Core中使用部分类别?

我在MVCCore中有一个应用程序,在此应用程序中,我正在使用DTO/ViewModels。首先,我从数据库中获取并填充ViewModels/dtos。DTO更有用,因为我们可以以自己的方式自定义它,而不是MicrosoftEntityFrameworkPure生成的POCO类。我们可以放置数据注释,创建更多属性,并可以利用它们进行更多自定义化。但是现在我面临着此层/DTO/ViewModel的性能问题。因为对于如此大的数据,C#循环正在减慢我的应用程序。不能/不应该使用部分类并编写数据注释并在那里编写我们自己的属性。它的问题是什么?看答案因为对于如此大的数据,C#循环正在减慢我的应用程序在查

c# - 如何在业务逻辑层设计数据传输对象

数据传输我正在构建一个Web应用程序,我想扩展到许多用户。此外,我需要通过Web服务向受信任的第三方公开功能。我正在使用LLBLGen生成数据访问层(使用SQLServer2008)。目标是构建一个业务逻辑层,使Web应用程序免受DAL细节的影响,当然,还提供DAL之外的额外验证级别。此外,据我所知,Web服务本质上是BLL上的薄包装。DAL当然有自己的一组实体对象,例如CustomerEntity、ProductEntity等。但是,我不希望表示层直接访问这些对象,因为它们包含特定于DAL的方法并且程序集特定于DAL等等。因此,我们的想法是创建数据传输对象(DTO)。这个想法是,这些

c# - DTO 的接口(interface)

我目前正在开始开发一个大型Web应用程序,主要包含一个AngularSPA和一个可以访问后端层的ODataWebAPI。我们还处于早期阶段,已经开始实现第一个类,包括位于公共(public)命名空间中的Model.dll,以便所有层都可以访问它。我们现在正在讨论模型中的那些DTO。有人说使用接口(interface)是绝对必要的,所以代码是这样的:namespaceMySolution.Common.Model{publicinterfaceIPerson{intId{get;set;}stringName{get;set;}...}}namespaceMySolution.Commo

c# - 使用 DTO 和 POCO 对象时处理导航属性的最佳做法是什么?

我正在努力研究领域驱动开发。我想确保我有一个良好的基础和理解,所以如果在这里避免使用AutoMapper或类似的建议,那就太好了。我的架构目前涉及以下内容:WCF服务负责持久性(使用EntityFramework)和服务器端验证。它将POCO转换为DTO,并将DTO传输给客户端。客户端接收DTO并将其转换为POCO。转换POCO和DTO的类在服务和客户端之间共享。POCO的实现IValidatableObject和INotifyPropertyChanged并被服务器和客户端使用,但它们不用于数据传输。DTO是,它们只是不包含任何行为的属性(property)包。(1)问题#1。这个架

c# - DTO 加上 UnitOfWork 模式是为 Web 应用程序设计 DAL 的好方法吗?

我正在使用EntityFramework实现DAL。在我们的应用程序中,我们有三层(DAL、业务层和表示层)。这是一个网络应用程序。当我们开始实现DAL时,我们的团队认为DAL应该有一些类,其方法接收业务层服务提供的ObjectContext并对其进行操作。该决定背后的基本原理是不同的ObjectContext看到不同的数据库状态,因此某些操作可能会由于外键匹配问题和其他不一致问题而被拒绝。我们注意到,从服务层生成和传播对象上下文会在层之间产生高耦合。因此我们决定使用Automapper映射的DTO(不是非托管实体或自跟踪实体争论高耦合,将实体暴露给上层和低效率)和UnitOfWork

c# - 使用 AutoMapper 将 DataTable 映射到对象 (DTO)

我正在尝试使用AutoMappersDynamicMap功能将DataTable映射到对象(DTO)。DataTabledt;dt=newdalAllInvestors().InvestorNameSearch(investorNameSearch);//LookatDynamicMap-UrgentListapiObject=AutoMapper.Mapper.DynamicMap>(dt.CreateDataReader());returnapiObject;publicclassdtoAPISimpleInvestor{publicintFirmID{get;set;}publi

c# - 使用 DTO 而不是在公共(public)程序集中共享对实体的引用是否有好处?

我正试图为一个让我抓狂了很长时间的问题找到一个明确的最终答案。通常表示BLL应包含业务逻辑和业务对象(BO),并具有对DAL的引用。另一方面,DAL不能引用BLL,因此它不能接受BO作为参数,或返回BO作为返回值。这个问题最传统的答案是:a)接受简单参数,返回(最好是Typed)DataSets和DataTables返回数据:命名空间DAL{公共(public)课联系方式公共(public)数据表GetContacts(){...}公共(public)UpdateContacts(DataTable联系人){...}b)第二个最推荐的解决方案是定义临时的、可序列化的数据传输对象(DTO

c# - DTO 和 Entity 是否都应该有输入验证

我有一个WCF层,我的领域模型在这个WCF层后面。我正在使用Nhibernate作为ORM工具,我所有的业务逻辑/数据访问等都将在这个WCF层之后。我正在向我的客户公开DTO。我有以下问题1)我应该创建DTO吗?将实体直接暴露给wcf客户端有什么坏处,因为我的实体也会有业务逻辑方法,这样做我将不得不用我认为不好的WCF属性破坏我的实体对象?2)如果我公开DTO,我是否应该验证DTO以及实体。如果我只验证DTO,那么我不会为我的Enitity对象提供任何输入验证。这样可以吗?3)我是否应该考虑使用模式验证在应用程序服务层(WCF层)中验证DTO?或者我应该使用文章[博客]中给出的IVal