【发布时间】:2010-05-31 03:49:14
【问题描述】:
大家好
我试图遵循 POCO 模板演练。现在我在 n 层设计中使用它时遇到了问题。
按照文章,我将我的 edmx 模型和模板生成的 context.tt 放在我的 DAL 项目中,并将生成的 model.tt 实体类移动到我的业务逻辑层 (BLL) 项目中。
通过这样做,我可以在我的 BLL 中使用这些实体而不引用 DAL,我想这就是 PI 的想法;对数据源一无所知。
现在,我想扩展实体(在 model.tt 中)以在 BLL 项目中执行一些 CUD 操作,所以我添加了一个与从模板生成的同名的新部分类,
public partial class Company
{
public static IEnumerable<Company> AllCompanies()
{
using(var context = new Entities()){
var q = from p in context.Companies
select p;
return q.ToList();
}
}
}
但是 Visual Studio 不允许我这样做,我认为这是因为 context.tt 在 DAL 项目中,并且 BLL 项目无法添加对 DAL 项目的引用,因为 DAL 已经引用了BLL。
所以我尝试将这个类添加到 DAL 并对其进行编译,但 intelisense 不会在我的 Web 服务项目中的我的 Web 服务方法中显示 BLL.Company.AllCompanies(),它引用了我的 BLL 项目。
我现在该怎么办?我想在我的 BLL 项目中将 CUD 方法添加到模板生成的实体中,并从另一个项目的 Web 服务中调用它们。
我这几天一直在寻找这个答案,我真的需要一些来自这里的指南。
布莱恩
【问题讨论】:
标签: entity-framework templates poco n-tier-architecture