首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Entities to DTO - Entity框架

Entities to DTO - Entity框架
EN

Stack Overflow用户
提问于 2009-10-10 17:14:09
回答 2查看 1.5K关注 0票数 0

请检查我的代码。对于我的每个实体,我创建了一个服务类,我将此entity.This方法的所有访问方法放在其中,执行从实体到我的DTO类的转换。这些方法是从Web层或bussines方法调用的。我这样做是对的吗?或者我应该以不同的方式来做呢?

服务方法:

代码语言:javascript
复制
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类

代码语言:javascript
复制
  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;
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-10-10 17:27:35

一切都很好,但我有一个建议。如果你有很多DTO对象,你应该考虑写一个通用的转换器。它可以使用反射和explicit conversion运算符来完成。

票数 0
EN

Stack Overflow用户

发布于 2009-10-10 17:20:25

请记住,在您实际使用要返回的IEnumerable之前,查询不会真正命中数据库(因为延迟执行)。我不确定这是如何工作的,因为您是在实际执行查询之前处理FinanceEntities。假设它可以工作,对我来说看起来很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1548506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档