我终于让周围以检查出最新的EF释放和我遇到一些麻烦与我的测试。

所以,我的DAL层握住我的.edmx文件和我使用的MS POCO模板,所以我也有产生.TT文件和类。

我在我TestProject.DAL一个通用的基类已经创建了这些类从派生。 即

public class BaseEntity<T> {}
public class Customer : BaseEntity<Customer> {}
public class Product : BaseEntity<Product> {}

然后在我TestProject.BLL层我有一些派生类 即。

public class TestProject.BLL.Customer : TestProject.DAL.Customer {}
public class TestProject.BLL.Product : TestProject.DAL.Product {}

然后,在我的UI层我打电话我BLL.Customer对象。 我得到一个错误说,到DAL.Customer对象的引用不添加等

我从UI的项目的BLL项目的引用并从我BLL工程DAL的引用。

为什么UI层抱怨它知道DAL层时,它不是在该项目中引用?

另外,作为侧问题,这是否看起来像一个“良好”的设计

谢谢大家! 鹅

有帮助吗?

解决方案

克雷格是正确的 - 你的UI被引用的POCO实体类型。但我会详细一点多。

如果的你在你的UI项目装配引用BLL的情况和组件引用DAL组件的公开暴露任何成员该DAL组装,你说的那么什么是正确的。但是,这并不是这里发生了什么。您在组装引用BLL并且该类型的组件直接从DAL类型继承,因此,DAL类型的的公开你的UI中可见。因此,编译器(正确地)告诉你,你必须在组装从UI项目中引用的DAL。

至于你的“好设计”的问题,这总是取决于上下文。不知道你的任何情况下,我会毫不犹豫地创建一个继承树这样的。什么是你的子类中的BLL装配工作?

其他提示

您UI 确实引用POCO实体类型 - 通过上BaseEntity一般类型参数

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top