实体框架 - 在设计器中创建强类型投影
我正在尝试通过实体框架中的设计器创建一个强类型投影实体“ProjectedPersons”。
我正在使用 POCO 类,并将它们分成单独的项目。
我不断收到错误:
错误 3027:没有为以下 EntitySet/AssociationSet - ProjectedPersons 指定映射。
我怎样才能消除这个错误。我只想使用该实体进行投影,而不是映射到数据库。
谢谢
I am trying to create a strongly typed projection entity "ProjectedPersons" via the designer in the Entity Framework.
I am using POCO classes and have seperated them out into seperate projects.
I keep getting an error:
error 3027: No mapping specified for the following EntitySet/AssociationSet - ProjectedPersons.
How can I remove this error. I only want to use the entity for projections not mapping to the database.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果您仅将该对象用于投影 - 我建议将其创建为复杂类型。您可以获得许多相同的功能,而无需实体固有的大量上下文开销。我相信一个实体完全期望在某些方面映射到数据库功能 - 因此你的错误。
If you are using the object only for projections - I would recommend creating it as a complex type instead. You get much of the same features without a lot of the contextual overhead that is inherent to an entity. I believe an entity is fully expecting to be mapped to a database feature in some respect - hence your error.
如果要在设计器中定义投影,则必须使用 QueryView (投影查询直接在设计器中定义并映射到新的只读实体) - 该功能必须直接在 XML(MSL 部分)中手动定义,而不是在设计器中。否则,您必须在 Linq 查询中手动进行投影。对于 linq 查询,您不需要在设计器中创建实体。您可以使用设计器中未映射的任何类。
If you want to define projection in designer you must use QueryView (projection query defined directly in the designer and mapped to the new readonly entity) - that is the feature which must be manually defined directly in XML (MSL part) not in the designer. Otherwise you must do projection manually in Linq query. For linq query you don't need to create entity in the designer. You can use any class which is not mapped in the designer.
QueryView 就是解决方案。我找到了一个有用的例子。
http://msdn.microsoft.com/en-us/magazine/ee336312.aspx
The QueryView was the solution. I found a helpful example.
http://msdn.microsoft.com/en-us/magazine/ee336312.aspx