【发布时间】:2011-08-18 01:45:06
【问题描述】:
我正在使用 MEF 和 EntityFramework 4 构建我的工作站代理应用程序。
该应用程序是一个简单的代理,在具有插件架构(以及许多 .dll 文件形式的插件)的计算机上运行。
每个插件都会查询自己的插件特定表。主程序(或代理)需要向插件传递信息,并从插件接收信息。
插件将使用 Entity Framework 4.1 来检索数据,因此它已经将数据格式化为对象(可能是重对象,因为它们与 EF 上下文相关联)。此外,我从数据库中提取的数据是一系列连接,因此数据与我已经创建的任何 POCO 身份/类都不匹配。
将数据编组入/出插件的最佳方式是什么?考虑到我正在使用 MEF 将各个部分联系在一起,并且插件中的数据已经有了对象。我应该创建一个新的 POCO 并将实体数据移入其中,然后对数组进行洗牌吗?我应该创建一个列表吗?我不仅对可以做什么感兴趣,而且对最佳实践感兴趣!
【问题讨论】:
-
应用程序将如何处理从插件中获取的数据?我认为这是一些预定义的操作,因此针对接口(应用程序和插件知道的接口 - 可能在单独的
Commons库中)进行编码是有意义的。 -
谢谢奥马尔。我希望主应用程序将插件生成的结果保存到数据库中;我想我可以在[返回]上做到这一点。更多地考虑我的问题,我真正想知道的是跨库编组数据的最佳实践是什么。我最终创建了一个新的 POCO(没有 getter 和 setter),只包含我将要使用的字段,将它们添加到列表中,处理 EF 上下文并返回列表。
-
您的方法对我来说很有意义,尽管我可能也会使用新的 POCO(或 POCO 列表)将数据发送到插件。插件不需要真正了解您的数据层,对吧?
-
仅供参考 - 我的插件需要来自三个不同表的复杂数据。我的数据来自数据库,通过实体框架,我对其对象没有太多经验。我正在研究将 XML(作为字符串)传递给插件。每个插件都可以解析 XML 以获取所需的值。插件还将数据作为字符串返回(使用 XML)。我想这只是对来回传递数据的大量选项缺乏了解。
标签: .net entity-framework design-patterns mef poco