【发布时间】:2014-08-10 19:52:34
【问题描述】:
假设我在 EF 代码优先上下文中有这个 POCO。
class A {
//public properties
}
class AViewModel {
public int AvgSomething {get;set;}
public int CalculatedValue {get;set;}
//and so on, around 10 unique calculated values, based on the POCOs values.
//In the calculations, other POCOs are used
}
现在,我想从 POCO 创建视图模型,但我不知道将执行计算的代码放在哪里。我不愿意把它作为公共方法放在 POCO 中,因为我认为 POCO 应该保持简单。我不想把它放在视图模型中,因为我已经读过视图模型不应该包含方法。我不想把它放在控制器中,因为它有很多代码。我正在考虑为我的 POCO 创建一堆扩展方法,但这感觉不对,我不知道为什么。 我拥有的是一个简单的 asp.net mvc 应用程序,其中包含模型、模型的存储库、视图模型、控制器,仅此而已。 BL没了?我应该创建一堆 NOPOCO(不仅是普通的旧 CLR 对象)与 POCO 一起使用吗?现在这会违反我的 KISS 信念!
总结一下,有一个典型的 asp.net mvc 应用,BL 代码应该去哪里,如果不在 POCO、VM 或控制器中?
【问题讨论】:
标签: c# asp.net-mvc entity-framework poco