0

私のコードを見直してください。すべてのエンティティに対して、サービス クラスを作成しました。ここに、このエンティティのすべてのアクセス メソッドを配置します。このメソッドは、エンティティから DTO クラスへの変換を行っています。このメソッドは、Web 層またはビジネス メソッドから呼び出されます。私はこれを正しくやっていますか?または、別の方法で行う必要がありますか?

サービス方法:

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;
    }
4

2 に答える 2

0

返される IEnumerable を実際に使用するまで、クエリは実際にはデータベースにヒットしないことに注意してください (遅延実行のため)。実際にクエリを実行する前に FinanceEntities を破棄しているため、それがどのように機能するかはわかりません。それが機能すると仮定すると、私には問題ないように見えます。

于 2009-10-10T17:20:25.237 に答える
0

なんでもいいんですけど、ひとつ提案があります。多くの DTO オブジェクトがある場合は、一般的なコンバーターを作成することを検討する必要があります。これは、リフレクションおよび明示的な変換演算子を使用して実行できます。

于 2009-10-10T17:27:35.113 に答える