在我的域模型中,我有一个 Entity 对象,如下所示:
public class Group
{
public int idGroup { get; set; }
public string Description { get; set; }
}
我有这个对象的存储库:
public class GroupRepository : IGroupRepository
{
public Group LoadGroup(int idGroup)
{
//imitation of SQL data reader
Group g = new Group();
g.idGroup = Convert.ToInt32(r["idTipoGrupo"]);
g.Description = Convert.ToString(r["Descricao"]);
return g;
}
}
但是现在我需要通过我创建的存储库中的一个新函数从数据存储中获取有关 Group 对象的一些额外信息,这里是我需要的字段:
public bool HasChildGroups { get; set; }
public int ChildGroupsCount { get; set; }
public bool HasDeals { get; set; }
public int DealsCount { get; set; }
这些属性在我看来就像一个“服务”或“帮助”属性,我不打算在我的应用程序中到处使用它们,只是几次,但我需要它们。我能想到的最简单的事情是我将这些“服务”属性添加到我的 Group 对象中,并在我的存储库中创建了一个填充它们的方法。但我认为这样做是错误的,因为它是实体,我在这里不需要它们。那么我应该把这些“服务”对象放在哪里呢?我是否必须创建一个继承自Group
这样的新类:
public class GroupHelper : Group
{
public bool HasChildGroups { get; set; }
public int ChildGroupsCount { get; set; }
public bool HasDeals { get; set; }
public int DealsCount { get; set; }
}
还是我应该考虑使用一些数据传输对象?你将如何解决这个问题?任何帮助表示赞赏。