我有一个模型类,它是从我的存储库类中的“GetById”方法加载的。我现在需要向这个实体添加额外的属性,这些属性没有保存在数据库中,而是由服务类计算得出的。就像是:
public class MyEntity
{
public int ThingId { get; set; };
public string ThingName { get; set; }
// Set from the service
public int WooFactor { get; set; }
}
public class WooFactorGenerator
{
public int CalculateWooFactor(MyEntity thing); // Hits other services and repo's to eventually determine the woo factor.
}
// Code to get a "MyEntity":
var myEntity = repo.GetById(1);
var gen = new WooFactorGenerator();
myEntity.WooFactor = gen.CalculateWooFactor(myEntity);
所以为了加载/饱和一个 MyEntity 对象,我需要从数据库加载,然后调用生成器来确定“woo 因子”(咳咳)。从架构的角度来看,这段代码应该去哪里?目前的想法:
1)在存储库中:如果我在这里添加它,我觉得我将太多的责任交给了 repo。
2) 在“MyEntity”类中。在此处添加代码,可能会在访问 WooFactor 时延迟加载它。这会给 MyEntity 添加很多依赖项。
3)一个单独的服务类 - 似乎矫枉过正且不必要。