如何解决使用EF 4和存储库模式的对象查询模式
| 有关存储库模式和查询对象模式的问题。我使用的是EF 4,并且已在VS 2010中使用ADO.NET POCO实体生成器从数据库模型中生成了POCO类。edmx文件和tt文件(POCO类)位于2个不同的项目中。 我的存储库是特定于域的,例如DocumentRepository和UserRepository。我的数据库模型与域模型的不同之处在于,我已经实现了映射程序,以便将域对象转换为一个或多个数据库表(反之亦然)。一个示例是,我的Document域类在数据库中建模为3个表(因此也建模为POCO类)。 在这种情况下使用域对象时,您将如何实现查询对象模式?我所看到的方式是我必须基于POCO类而不是域类编写查询对象?但这不会破坏存储库模式吗?解决方法
ORM通常以直接与域对象一起使用的方式使用;它从数据库中加载它们并将它们持久保存到数据库中。您将再执行一个抽象步骤,即仅使用ORM实体填充自定义对象。您的自定义对象完全超出了ORM工具的范围,并且您不能期望ORM工具会为您提供对基于域对象之上的查询的任何支持。您必须建立自己的查询支持,并将域查询转换为存储库内的ORM查询。这通常是通过实现规范模式来完成的。
顺便说一句。在这种情况下,POCO并不太有意义-POCO适用于您要将其用作域对象的情况。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。