是否可以编写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下载,让我知道你的想法;)