Asp.net 实体框架4.1动态生成的表

Asp.net 实体框架4.1动态生成的表,asp.net,asp.net-mvc-3,orm,entity-framework-4,entity,Asp.net,Asp.net Mvc 3,Orm,Entity Framework 4,Entity,我有两个模型;用户和客户端。一个用户可以有多个客户端,而一个客户端只有一个用户。项目经理坚持每个用户客户端都在一个单独的表中,因此我必须为创建的每个用户动态生成新表。例如,用户ABC将有一个名为ABC_Clients的新表,用户XXX将有一个名为XXX_Clients的单独表,以此类推。我的问题是:如何使用实体框架实现这一点?我可以简单地执行一个过程来创建新表,并使用ExecuteStoreQuery()进行手动查询,但它似乎不会拉回关系(即延迟加载),我是否必须以某种方式或其他方式构造查询?这

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

这是一个出色的设计。它将非常容易使用和维护。祝贺你的经理,告诉他做好他的工作,让你做好你的工作。项目经理不是架构师,通常是缺乏技术知识的人


EF无法支持这一点。您必须完全使用SQL(在本例中实际上是动态SQL)和旧的ADO.NET来完成
ExecuteStoreQuery
从不返回关系-它无法返回关系。延迟加载不能很好地工作,因为标准的延迟加载基于实体框架映射的静态数据库结构。EF无法映射您的
客户端
实体,因为它要求每个实体只映射一次(=在继承或拆分的情况下映射到一个表或一组相关表)。您的
客户机
实体需要映射的次数与您的
用户
表中的用户数相同。

这是一个极好的设计。它将非常容易使用和维护。祝贺你的经理,告诉他做好他的工作,让你做好你的工作。项目经理不是架构师,通常是缺乏技术知识的人


EF无法支持这一点。您必须完全使用SQL(在本例中实际上是动态SQL)和旧的ADO.NET来完成
ExecuteStoreQuery
从不返回关系-它无法返回关系。延迟加载不能很好地工作,因为标准的延迟加载基于实体框架映射的静态数据库结构。EF无法映射您的
客户端
实体,因为它要求每个实体只映射一次(=在继承或拆分的情况下映射到一个表或一组相关表)。您的
客户机
实体需要映射的次数与您的
用户
表中的用户次数相同。

该人需要了解RDBMS设计基础:)该人需要了解RDBMS设计基础:)我同意。他自己实际上是一个开发人员,他说他是根据“经验”来说话的:如果你把客户表放在我的错误中,那么每个人都会受到影响,就像他们被分开一样,一个客户表被错误地放在一起,它只会影响一个用户和客户。我知道他是从哪里来的,但这就是数据库备份的目的,等等。不管怎样,我也认为他是从哪里来的。这个问题,谢谢:-)错丢桌子了?那是什么?这在正常的应用程序体系结构中不可能发生,但在您的体系结构中确实可能发生,您的应用程序必须具有删除和创建表的权限。@eth0如果您有空闲时间将此设计发布到@LadislavMrnka上,如果有一个应用程序在运行时从数据库中添加/删除db列,我们该怎么办?@HoussamHamdan:在这种情况下你不应该使用EF。我同意。他自己实际上是一个开发人员,他说他是根据“经验”来说话的:如果你把客户表放在我的错误中,那么每个人都会受到影响,就像他们被分开一样,一个客户表被错误地放在一起,它只会影响一个用户和客户。我知道他是从哪里来的,但这就是数据库备份的目的,等等。不管怎样,我也认为他是从哪里来的。这个问题,谢谢:-)错丢桌子了?那是什么?这在正常的应用程序体系结构中不可能发生,但在您的体系结构中确实可能发生,您的应用程序必须具有删除和创建表的权限。@eth0如果您有空闲时间将此设计发布到@LadislavMrnka上,如果有一个应用程序在运行时从数据库中添加/删除db列,我们该怎么办?@HoussamHamdan:在这种情况下,你不应该使用EF。