![](/img/trans.png)
[英]Entity Framework + AutoMapper ( Entity to DTO and DTO to Entity )
[英]Entities to DTO - Entity framework
请检查我的代码。 我为每个实体创建了一个服务类,在其中放置了该实体的所有访问方法。此方法正在执行从实体到DTO类的转换。 从Web层或bussines方法调用此方法。 我在做这个吗? 还是我应该另辟?径?
服务方法:
public static IEnumerable<OsobaDto> GetNakupyByOsoba(Guid guid)
{
using (FinanceEntities finance = new FinanceEntities())
{
var osoby = from o in finance.OsobaSet
where o.Nakupy.Any(n => n.idnakupu == guid)
select new OsobaDto
{
Id = o.idosoba,
Meno = o.meno,
Priezvisko = o.priezvisko,
Prijem = o.prijem,
Nakupy = o.Nakupy.Select(n => new NakupDto
{
IdNakupu = n.idnakupu,
Cena = n.cena,
Datum = n.datum
})
};
return osoby;
}
}
和DTO类
public class NakupDto
{
public Guid? IdNakupu
{
get;
set;
}
public Decimal Cena
{
get;
set;
}
public DateTime Datum
{
get;
set;
}
public IEnumerable<OsobaDto> Osoby
{
get;
set;
}
public OsobaDto Platil
{
get;
set;
}
请记住,在您实际使用要返回的IEnumerable之前,该查询实际上不会访问数据库(因为延迟执行)。 我不确定这将如何工作,因为您在实际执行查询之前就布置了FinanceEntities。 假设可行,对我来说很好。
一切都很好,但是我有一个建议。 如果您有很多DTO对象,则应该考虑编写一个通用转换器。 可以使用反射和显式转换运算符来完成。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.