我想知道如何告诉NHibernate解决我的POCO域对象的依赖关系.
我发现像CalculateOrderTax这样的方法应该在Domain对象中,因为它们编码特定于域的业务规则.但是,一旦我有两个违反SRP的话.
将这些方法提取到Strategy类是没有问题的,但我想知道如何使NHibernate加载它们.
在将对象移交给更高层之前,循环访问存储库中的对象列表以进行基于Dependecy注入的获取/设置似乎不是一个好的解决方案.
我现在也在使用Castle Windsor进行Depency注射.
我正试图了解DI/IoC,NHibernate并让它们在我正在开发的应用程序中很好地协同工作.我对NHibernate和DI/IoC都很陌生,所以不太确定我所做的是否是合理的方式.这是场景:
该应用程序为用户提供了计算特定金融交易的特定值(称为保证金)的能力.每个事务的marging值的计算是通过抽象MarginCalculator类的具体实现来执行的,并且要使用的具体实现取决于特定事务的产品类型(由产品对象的某个字段给出).具体的计算器类可通过产品类的属性访问.即
public class Transaction
{
private double _margin;
private Product _product;
private Client _client;
public double Margin { get; }
public Product Product { get; }
public Client Client { get; }
public Transaction(Product p, Client c)
{
_product = p;
_client = c;
}
public void CalculateMargin()
{
_margin = _product.MarginCalculator.CalculateMargin();
}
}
public class Product
{
private string _id;
private string _productType;
... Other fields
public string Id { get; }
public string ProductType { get; } …Run Code Online (Sandbox Code Playgroud)