C# · 12月 30, 2021

c# – 用于EF 4实体模型的DTO生成器

是否可以编写t4模板(或者已经存在),这将基于* .edmx文件中的数据能够生成DTO类?

我必须为当前的项目编写DTO类,这个过程有点麻烦.

我想要获取的是获取将标量属性定义为简单自动属性的DTO类,导航参数作为其他DTO类的封装实例.

示例:

public class SomeClassDTO{ public byte Id { get; set; } public string Description { get; set; } public OtherClassDTO SomeProperty {get;set;} public IList<AnotherClassDTO> Objects {get;set;}}

这是一个很好的起点,更可取的可能如下图所示:

/// <summary>/// Employee details DTO./// </summary>public class EmployeeDetailsDTO{ [Key] public long Id { get; set; } [required] public string FirstName { get; set; } [required] public string Surname { get; set; } … public long? PhotoId { get; set; } // Home address properties. public string HomeAddressAddressLine1 { get; set; } // This is just name of field,not flattened list public string HomeAddressAddressLine2 { get; set; } public string HomeAddressAddressLine3 { get; set; } public string HomeAddressPostcode { get; set; } public short? HomeAddressCountryId { get; set; } public long? HomeAddressCountyId { get; set; } public long? HomeAddressTownId { get; set; } public short? HomeTelephoneCountryId { get; set; } public string HomeTelephoneNumber{ get; set; } public string HomeTelephoneExtension { get; set; } public short? PersonalMobileCountryId { get; set; } public string PersonalMobileNumber { get; set; } public string PersonalMobileExtension { get; set; }}

您可以看到这是一个扁平的DTO,它代表复合结构,并可以通过ValueInjector SameNameFlat / UnFlat注入向实体注入.

这是最终的目标,尽管任何建议都不会被赞赏.

解决方法 我最近在CodePlex发布了一个名为EntitiesToDTO的实体框架DTO生成器,它是免费的和开源的,它被用作Visual Studio 2010和2012的AddIn.我认为这将为您提供帮助.

去http://entitiestodtos.codeplex.com下载,让我知道你的想法;)