实体框架4.1动态生成的表

时间:2011-09-06 09:36:48

标签: asp.net asp.net-mvc-3 orm entity-framework-4 entity

我有两个型号;用户和客户。用户可以拥有多个客户端,而客户端拥有一个用户。项目经理坚持每个用户客户都在一个单独的中,因此我必须为每个创建的用户动态生成新表。例如,用户ABC将有一个名为ABC_Clients的新表,用户XXX将有一个名为XXX_Clients的单独表,依此类推。我的问题:如何使用Entity Framework执行此操作?我可以简单地执行一个过程来创建新表并使用ExecuteStoreQuery()进行手动查询但它似乎没有拉回关系(即延迟加载),我是否必须以某种方式构造我的查询或什么?

1 个答案:

答案 0 :(得分:3)

这是出色的设计。它将非常易于使用,并且非常适合维护。祝贺你的经理并告诉他完成他的工作并让你做你的工作。项目经理不是建筑师,通常是技术知识不足的人。

无法用EF支持此功能。您必须完全使用SQL(在本例中是实际的动态SQL)和旧的ADO.NET。 ExecuteStoreQuery永远不会回归关系 - 它无法做到这一点。延迟加载也不能正常工作,因为标准延迟加载基于使用Entity框架映射的静态数据库结构。 EF无法映射您的Client实体,因为它要求每个实体仅映射一次(=在继承或拆分的情况下映射到一个表或一组相关表)。您的Client实体需要与User表中的用户一样多次映射。

相关问题