我的网络应用程序中有3个csprojs:
UI.Web引用Bll.Web和Bll.Web引用DAL.Web。
DAL.Web非常简单,只包含以下方法:
GetDataTableFromSP
GetScalarFromSP
ExecuteScalarFromSP
我使用EF4反向设计了我的数据库,并使用了自我跟踪实体模板。现在我留下3个文件:
我的问题是,在我的项目结构中,我在哪里放置这些以便保持我的n层方法?
谢谢!
答案 0 :(得分:1)
这完全取决于个人偏好。
例如,我总是将这些文件和模型放在我的应用程序的DAL方面。但我还需要访问生成的实体,例如Student,Grade或StaffType。所以我从BRL中引用了DAL。
在UI中我还需要知道生成的实体,因为通常我给表单一个实体并填充该对象的表单字段。所以我也从UI中引用了BRL。
答案 1 :(得分:1)
我会将T4模板(以及生成的实体)放在自己的Model程序集中,并在所有层中引用。您只需将Model.tt移动到新程序集,使用其中一个编辑器在VS中打开它,这样您就可以看到T4代码。搜索Model.edmx并更新路径,使其正确解析到包含Model.edmx的DAL.Web项目磁盘上的物理位置。
这使您能够在架构/模型发生变化时重新运行T4模板,但通过不让UI需要依赖DAL来保持关注点的分离。
刚刚找到以下内容,有助于解释此here