我正在遵循“Programming Entity Framework Code First”中提出的建议架构路径。
在 VS 中有一个 DataAccess 层和一个 Model 层,它们都形成了单独的项目。
模型层包含我的业务对象类。DataAccess 层具有对 Model 项目的引用,因此它可以为我的每个业务对象创建上下文和 DbSet。
问题是模型中的某些类需要访问数据层来执行计算,但是我不能在模型项目中引用数据访问层,因为它会创建循环引用。DataAccess 层必须引用 Model 层,以便它可以创建 DbSet。另请注意,计算是只读的——只有 getter,不会持久化到数据库中。
我已经为此搜索了几个小时并找到了有用的信息,但我想我错过了一些简单的东西?POCO 类本来就是简单的,但我的类代表的东西有一些非常相关但更复杂的计算。
作为一个简单的具体示例,我有一个 Transaction 类和一个 AccountBalance 类。Transaction 类需要知道特定日期的 AccountBalance 以用于显示目的——例如百分比变化(这只是一个简单的示例):
公共类事务
{
public DateTime Date { get; set; }
public string Description { get; set; }
... etc
public double PercentageChange
{
get
{
// return TransactionAmount / AccountBalance on TransactionDate
// however Transaction has no knowledge of AccountBalance...
}
}
}
谢谢