我在C# winforms应用程序中使用了MVP模式,遇到了以下设计问题。我的域中有一个User类和一个UserCollectionDAO类,这个类从本质上用数据库中的其他一些信息加载所有用户。当我通过presenter向我的视图呈现用户集合时,我不想显示他们的所有属性。例如,我的用户具有以下属性:
class User
{
public User(int id)
{
Id = id;
}
public int Id { get; private set; }
public string Name { get; set; }
public
考虑一个类,其中包含返回每个值所需的许多方法。在强类型语言(如C# )中,我们可以使用DTO类从方法返回多个值。
假设我的方法将集体返回的值如下(让我们称之为池):
A, B, C, D, E
但并不是所有的方法都需要返回。例如,请考虑以下几点:
Method Values to return:
==============================
Method1 A, B, C
Method2 A, E
Method3 B, D, E
Method4 D, E
Method5 A, C, D, E
您知道,要返回的值是从池中返回的各种
我正在寻找一种从JPA实体创建数据传输对象(DTO)的好方法,反之亦然。我希望将DTO作为JSON发送到客户端,然后接收修改后的DTO并将其保存回数据库。在将接收到的对象从EntityManager解析到它的Java类之后,对它执行合并方法将是最容易的。
例如,有以下实体和Rest方法来保存修改后的对象:
@Entity
@Table(name="CUSTOMER")
public class Customer {
@Id
Long id;
@Version
Long version;
String name;
String a
我在webservice的dto上遇到了麻烦。我遇到的问题是一个数字,它是从数据库中以十进制格式出现的,但是当我使用webservice时,这个数字显示为-3.2E-05。
c#代码中dto的结构是:
var dto = new RentabPorInstrumentoDTO
{
RentabilidadHist = p.RENTABOLIDAD_HIST,
RentabilidadHist = C
在过去一年左右的时间里,我一直在学习C#,并试图在此过程中融入最佳实践。在StackOverflow和其他web资源之间,我认为我在正确的道路上正确地分离了我的关注点,但现在我有一些疑问,希望在我将整个网站转换到这个新的架构之前,确保我走的是正确的道路。
目前的网站是旧的ASP,并有一个现有的数据库,是相当丑陋(没有外键等),所以至少在.NET的第一个版本,我不想使用,并必须学习任何VBscript工具在这个时候。
我将以下项目放在不同的命名空间和设置中,以便UI层只能看到DTO和业务层,而数据层只能从业务层看到。下面是一个简单的例子:
productDTO.cs
public class P
我正在学习有关DDD的知识,所以如果我的问题太天真了,很抱歉。我认为我需要使用Local Data Transfer Object来向用户显示数据,因为很多属性都不是任何实体/值对象的一部分。
但是,我不确定这种DTO应该在哪里实现-在域层还是在应用程序服务层。DTO实现似乎是域的一部分,但这意味着当我在服务层中创建DTO集合并将其传递给表示层时,我必须在表示层中引用域层,这似乎是错误的。
使用DDD原则实现DTO的正确方法是什么?
我从一个基本DTO派生出多个DTO(数据传输对象)。我在基本DTO (isUpdateAvailable)中有一个属性,它在所有派生类中都是共享的。我有一个方法,它对于多个用例是通用的,该方法获取基本DTO并直接使用它,或者通过将其转换为相应的派生DTO来使用它。
我认为这不是一个好的c#代码设计。应该不需要转换。此外,我还听说这种代码设计破坏了一些可靠的原则。
我已经创建了一个简短的示例代码来描述我的观点。请看一下:
public class UpdateNotification
{
public void ChromeNotification(MyBaseDto baseDto
应该使用来自BLL项目的数据传输对象(DTO)作为ViewModel项目视图中的模型来显示数据,还是应该始终创建ViewModel?最好的方法是什么?
例如,在BLL项目DTO类中:
public class EmployeeDTO
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
在EmployeeDTO中,在控制器动作中,我从BLL项目调用方法,该方法返回EmployeeDTO的数据类型。然后在视图中使用EmployeeDTO作为
我有这样的数据模型:
public class ObjectType
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<ObjectType> AllowedSubTypes { get; set; }
}
我需要使用Automapper将以下DTO模型映射到上面的数据模型中:
public
下面我展示了从使用表单到持久层的数据流。但是对于哪些对象应该在MVC的哪一层中可用,以及数据应该如何在MVC的不同层之间传输有疑问。我正在使用Spring,所以下面发布的代码是Spring框架的代码。
这里,我有一个DTO(数据传输对象) PatientForm,它保存用户输入的表单数据。
public class Patient {
private int id;
private String name;
private String medicineOne;
private String medicineTwo;
public int getId() {
return id;
我正在开发一个用F#编码的服务器。此服务器连接到用C#编码的WCF服务。
我的F#项目引用C#程序集.
在我的C#里我有namespace GlobalNotificationService.DTO
public class Producer
{
[DataMember(Name = "Name", IsRequired = true, Order = 1)]
public string Name {get; set;}
...
public string Marshal()
{
StringBuilder sb = ne
Introduction
我用的是ASP.Net MVC3。我的控制器与服务层对话,服务层与使用实体框架的数据Acces层对话。我使用实体框架获得一个特定的实体。此实体被转换为DTO。然后,我将这个DTO交付给MVC控制器。就像这样:
伪码:
// This is inside my Service Layer
var entity = DataAccess.GetById(id);
var dto = createDtoWithValuesFrom(entity);
return dto; // Return dto to MVC controller
在这个DTO中,我想使用一个依赖项,例
我在业务对象中定义了一个枚举。
这个枚举是在数据传输对象中定义的。
dto枚举不是业务对象的类型,因为它们不应该相互了解。
当我现在从客户机获得这个dto并将dto映射到一个业务对象并将数据插入到数据库中时,我想断言传递的dto.enum与数据库中插入的枚举值具有相同的值。
这是我收到的错误信息:
Expected: A
But was: A
实际上,它们具有相同的值,但类型不同: dto.enum对businessobject.enum。
那么,您在哪里定义这个枚举呢?那么,这两个对象都可以吗?两个对象之间没有耦合吗?
我考虑在业务层和dto和业务对象使用的枚举定义中添加一个额外的c
更新: C# 9应该使用记录来修复这个问题:D
我想知道是否有一种建议的方法来初始化用于数据传输的普通对象的属性,例如通过REST。
以下是我能想到的两个变体:
public class Dto
{
public string Name { get; set; }
public int Number { get; set; }
}
new Dto {
Name = actualName,
Number = actualNumber
};
vs
public class Dto
{
public string Name { get; privat