繁体   English   中英

DTO实体-实体框架

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM