jjzjj

c# - 将 Entity Framework 模型导航属性转换为 DTO

我目前正在从事一个n层网络项目。在研究了数据传输对象及其好处之后,我们决定试一试这种模式。我们的ASP.NETMVC网站无法直接访问EFDbContext,而是使用DTO发送和接收实体数据。将有一个服务/映射层,将在DTO和实体模型之间进行转换。我的问题是,将实体模型导航属性转换为其DTO的最佳方式是什么?下面是项目中实体模型及其DTO的示例:实体模型:publicclassPayment{publicintID{get;set;}publicDateTime?PaidOn{get;set;}publicdecimalAmount{get;set;}publicstringRefere

c# - 在 3 层架构中使用 DTO

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭10年前。我使用的是简单的3层架构。在这里,我使用DTO类在UI、BL和DL之间进行通信。那么层与层之间有没有更好的通信方式呢?或者这是正确的方法?

c# - Entity Framework 和DTO

我打算使用EF(POCO)生成的实体向客户端发送数据而不是创建DTO?这是一个好习惯吗?基本上,我的EDMX文件在我的DAL层上。因此UI将可以直接访问我的DAL。谢谢。 最佳答案 这取决于客户端与您的对象域的距离。如果它是您的客户端,那么也许-事实上这几乎就是ADO.NET数据服务(等)的工作方式-直接公开您的模型。但是,如果客户端是任何其他,我建议使用专用的DTO。事实上,无论如何我都会建议它;p否则,它会变得有些复杂:控制序列化细节(什么成员?什么名字?当我们版本化它时会发生什么?)处理关系属性(它有一个Orders成员...

c# - 质疑使用具有 Restful 服务的 DTO 并从更新中提取行为

在DDD领域,我喜欢避免使用getter和setter来完全封装组件的想法,因此唯一允许的交互是通过行为构建的交互。将此与事件溯源相结合,我可以获得有关组件已执行的操作以及何时执行的详细历史记录。我一直在考虑的一件事是,当我想要创建(例如)底层服务的Restful网关时。出于示例的目的,假设我有一个具有以下方法的Task对象,ChangeDueDate(DateTime日期)ChangeDescription(字符串描述)AddTags(paramsstring[]tags)完成()现在很明显我将在这个对象中有实例变量来控制状态和事件,当相关方法被调用时它们将被触发。回到REST服务,

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# - 数据传输对象模式

对不起,我是企业应用程序和设计模式的新手。这个问题可能是因为缺乏对设计模式的了解。我发现使用DTO传输数据更好。我的业务实体类如下:publicclassPatient{publicstringID{get;set;}publicstringFullName{get;set;}publicstringFirstName{get;set;}publicstringSurname{get;set;}}所以在我的应用程序中,用户只提供ID和HospitalID。所以它调用另一个网络服务并获取个人信息publicclassPersonDTO{publicstringNIC{get;set;}p