草庐IT

c# - 使用访问者模式从平面 DTO 构建对象图

我为自己编写了一个非常简单的小域模型,对象图如下所示:--Customer--Name:Name--Account:CustomerAccount--HomeAddress:PostalAddress--InvoiceAddress:PostalAddress--HomePhoneNumber:TelephoneNumber--WorkPhoneNumber:TelephoneNumber--MobilePhoneNumber:TelephoneNumber--EmailAddress:EmailAddress此结构完全与我必须使用的遗留数据库不一致,因此我定义了一个平面DTO,其中包

c# - 如何使用 AutoMapper 将 Dto 映射到具有嵌套对象的现有对象实例?

我有以下Dto和带有嵌套子实体的实体。publicclassDto{publicstringProperty{get;set;}publicstringSubProperty{get;set;}}publicclassEntity{publicstringProperty{get;set;}publicSubEntitySub{get;set;}}publicclassSubEntity{publicstringSubProperty{get;set;}}如何使用AutoMapper设置一个映射,使我可以使用Dto中的值更新Entity的现有实例.我正在使用Mapper.Map(dto

c# - 如何将针对 DTO 的 OData 查询映射到另一个实体?

我的问题与这个非常相似:HowdoImapanODataqueryagainstaDTOtoanEFentity?我有一个简单的设置来测试ASP.NETWebAPIODataV4$filter功能。我想做的是“别名”ProductDTO的一些属性以匹配Product实体的属性。例如,用户将使用以下请求调用ProductsController:GETproducts?$filter=DisplayNameeq‘test’产品类:publicclassProduct{publicintId{get;set;}publicstringName{get;set;}publicintLevel{

c# - 对 DTO 的 ASP.NET WebApi OData 支持

我有项目实体和ProjectDTO。我正在尝试创建一个WebAPIController方法,该方法可以获取和返回ProjectDTO并使其支持OData。问题是我使用的ORM可以使用项目实体而不是项目DTO查询数据库。有什么方法可以将基于ProjectDTO的OData的过滤/排序/分页应用于项目实体查询?publicODataQueryResultGetProjects(ODataQueryOptionsquery){varcontext=newORM_Context();varprojects=context.Projects;//IQueryablevarprojectDtos=

c# - 关于如何从域(ORM)对象映射到数据传输对象(DTO)的建议

我正在使用的当前系统使用CaSTLeActiverecord在域对象和数据库之间提供ORM(对象关系映射)。这一切都很好,而且在大多数时候实际上效果很好!问题来自CaSTLeActiverecords对异步执行的支持,更具体地说,是管理对象所属session的SessionScope。长话短说,不好的事情发生了!因此,我们正在寻找一种方法,可以轻松地将域对象(知道数据库存在并关心)转换(自动思考)到DTO对象(对数据库一无所知并且不关心session、映射属性)或所有ORM)。有没有人对此有建议。首先,我正在寻找对象的基本一对一映射。域对象Person将被映射为PersonDTO。我不

c# - .NET 中广泛使用 DAO 模式吗?

DAO(数据访问对象)是.NET中常用的模式吗?我一直使用DAO作为提供对我的数据层的访问的一种方式。例如,我可能在EntityFrameworkObjectContext上有一个薄接口(interface),将我的所有ObjectSet公开为IObjectSet。然后DAO将公开复杂的查询,每个DAO都依赖于此接口(interface)。我可能有一个ProductDAO,它公开了诸如GetProductsOnSale()或GetInfrequenlySoldProducts()之类的方法。然后我的Controller或演示者将使用这些方法,这些方法可能是虚拟的,以允许为单元测试stu

c# - 使用 Linq Select 将实体映射到 DTO 的最简洁方法?

我一直在努力想出一种干净且可重用的方法来将实体映射到它们的DTO。这是我想出的例子以及我被困的地方。实体publicclassPerson{publicintID{get;set;}publicstringName{get;set;}publicAddressAddress{get;set;}//OtherpropertiesnotincludedinDTO}publicclassAddress{publicintID{get;set;}publicstringCity{get;set;}//OtherpropertiesnotincludedinDTO}DTOpublicclassP

c# - OData $expand、DTO 和 Entity Framework

我有一个基本的WebApi服务设置,其中数据库首先设置了EFDataModel。我正在运行WebApi、EF6和WebApiOData包的夜间构建。(WebApi:5.1.0-alpha1,EF:6.1.0-alpha1,WebApiOData:5.1.0-alpha1)数据库有两个表:Product和Supplier。一个产品可以有一个供应商。供应商可以有多个产品。我还创建了两个DTO类:publicclassSupplier{[Key]publicintId{get;set;}publicstringName{get;set;}publicvirtualIQueryableProd

c# - ServiceStack FluentValidation 中的自定义响应 DTO

我正在评估FluentValidationinServiceStack用于处理请求DTO的自动验证:Plugins.Add(newValidationFeature());container.RegisterValidators(typeof(MyValidator).Assembly);错误通过序列化ErrorResponseDTO返回给客户端,可能如下所示:{"ErrorCode":"GreaterThan","Message":"'Age'mustbegreaterthan'0'.","Errors":[{"ErrorCode":"GreaterThan","FieldName"

c# - 如何组织和命名在 WCF Web 服务中用作数据协定的 DTO

我们在WCF网络服务中使用DTO作为数据契约。这些DTO的目的是仅公开与特定API方法相关的信息。我想从你们那里寻求一些关于最佳实践的建议。例如,考虑以下简单模型:classOrder{intCreatedBy{get;set;}DateTimeCreatedOn{get;set;}stringDescription{get;set;}intId{get;set;}stringName{get;set;}}假设我们的API允许消费者创建、更新和获取订单,我们创建了以下DTO。为简单起见,删除了DataMember和DataContract属性。Create方法:用户无法指定Id和Cre