实体框架POCO对象创建

时间:2011-07-19 09:55:35

标签: c# entity-framework-4.1

我们目前正在使用EF 4.1,并且正在考虑我们的对象模型的新替代方案,这很糟糕。我们确实在某种BL-Layer和GUI模型之上有POCO,其中包含POCO的对象将BindingLists提供给UI而不是BL的IEnumerables。

我们考虑过从POCO中获取UI模型,但我不知道如何使用EF实例化对象,因为它不应该知道有关UI对象的任何信息。有没有办法将实例化过程移动到工厂,或者有没有人知道如何从基础到派生类型推广对象(这根本不是一个好主意,是吗?)

任何帮助,建议或意见都将受到高度赞赏。

祝你好运 Gope

2 个答案:

答案 0 :(得分:0)

不可能将对象实例化移动到工厂。因为从您的实体派生自定义类将无法工作,因为EF不会为您创建这些实例,并且您也无法持久保存这些实例,因为EF不知道如何映射它们。

答案 1 :(得分:0)

在EF4中引入POCO支持是为了允许业务对象存在而不扩展EF中的对象(特别是EntityObject)。我已经在许多系统上工作,其中域模型在系统中的所有层之间共享,并且存储库模式用于处理对象持久性。许多团队使用数据传输对象(DTO)的概念来为UI提供UI可以使用的轻量级对象(这也为UI提供了一定程度的抽象)。

Microsoft Spain最近发布了一个文档和示例应用程序,讨论如何构建企业应用程序(http://microsoftnlayerapp.codeplex.com/),这可能会为您提供有关如何更好地构建事物的一些想法。