DTO和实体的接口和方法

问题描述 投票:0回答:2

如果我有实体类,则>

public class BarcodeSetting
{
   string Prefix {get;set;}
   string RangeStart {get;set;}
   string RangeEnd {get;set;}
}

和DTO

public class BarcodeSettingDTO
{
   string Prefix {get;set;}
   string RangeStart {get;set;}
   string RangeEnd {get;set;}
}
  1. 我的问题是我应该在客户端(winform)中使用BarcodeSettingDTO吗?或创建另一个类,例如BarcodeSettingViewModel

  • 如果我想使用方法IsBarcodeValid

  • public bool IsBarcodeValid(BarcodeSettingDTO dto, string barcode)
    {
       // return true if barocode is in BarcodeSettingDTO range
       // return false
    }
    

    我应该将其放置在哪里(作为静态助手方法,或将其放置在BarcodeSettingDTO中)?我以前认为IsBarcodeValid应该是BarcodeSetting内部的方法,但贫血模型不允许有任何方法。

    1. [如果我有一个实体的多个DTO(在不同的应用程序中)。如何重用一些方法?例如,BarcodeSettingDTOBarcodeSettingAnotherDTO(几乎类似于BarcodeSettingDTO)。这是否意味着我应该为DTO创建IBarcodeSettingDTO,并使用IsBarcodeValid (IBarcodeSettingDTO dto, string barcode)。我在Google上搜索过,有些人认为DTO不应该有任何界面。所以我真的很困惑。解决此问题的正确方法是什么?

    [如果我有实体类,则公共类BarcodeSetting {字符串前缀{get; set;}字符串RangeStart {get; set;}字符串RangeEnd {get; set;}}和DTO公共类BarcodeSettingDTO {...

    java c# methods interface dto
    2个回答
    0
    投票

    Dto仅用于在各层之间传输数据,因此,在引用验证或业务逻辑时专门添加一些行为是没有责任的。尝试将验证和业务规则集中到业务规则验证器类或丰富的Entity类中。


    0
    投票
    1. 我的问题是我应该在客户端(winform)中使用BarcodeSettingDTO吗?或创建另一个类,例如BarcodeSettingViewModel
    © www.soinside.com 2019 - 2024. All rights reserved.