我正在尝试确定如何最好地构建 .NET 实体框架项目以实现良好的分层方法。到目前为止,我已经在一个玩家拥有和操作行星的基于浏览的游戏中进行了尝试。这就是我得到它的方式:
网站
这包含所有的前端。
C# 项目 - MLS.Game.Data
这包含带有我所有数据映射的 EDMX 文件。这里不多。
C# 项目 - MLS.Game.Business
这包含我称之为“经理”的各种类,例如 PlanetManager.cs。行星管理器具有各种用于与行星交互的静态方法,例如getPlanet(int planetID),它将从 MLS.Game.Data 返回生成的代码对象。
从网站上,我会做这样的事情:
var planet = PlanetManager.getPlanet(1);
它从 MLS.Game.Data(从 EDMX 生成)返回一个Planet对象。它有效,但它在一定程度上困扰着我,因为这意味着我的前端必须引用 MLS.Game.Data。我一直觉得 GUI 应该只需要引用业务项目。
此外,我发现我的 Manager 课程往往会变得非常繁重。我最终会得到几十个静态方法。
所以......我的问题是 - 其他人如何布置他们的 ASP EF 项目?
编辑
不过,再过一些之后,还有一些让我烦恼的东西。例如,假设我有我的 Planet 对象,它也是由向导生成的代码。如果有一天我的星球需要有一个专门的属性,比如说“人口”,它是基于星球对象的其他属性的某种计算。我想创建一个继承自 Planet 的新类然后返回它吗?(嗯,我想知道这些类是否被 EF 密封?)
谢谢