我有两个模型;用户和客户端。用户可以拥有多个客户端,而客户端拥有一个用户。项目经理坚持要求每个用户客户端独立表所以我必须为每个创建的用户动态生成新表。例如,用户ABC将有一个名为ABC_Clients的新表,用户XXX将有一个名为XXX_Clients的单独表格等等。我的问题:我如何使用实体框架来做到这一点?我可以简单地执行一个过程来创建新表,并使用ExecuteStoreQuery()
执行手动查询,但它似乎不会拉回关系(即延迟加载),是否必须以某种方式构建我的查询?实体框架4.1动态生成表
回答
这是优秀的设计。这将是非常容易使用,真的很好维护。恭喜你的经理,并告诉他做他的工作,让你做你的工作。项目经理不是建筑师,通常是技术知识欠佳的人。
有没有办法来支持这与EF。你必须完全用SQL(在这种情况下实际上是动态SQL)和旧的ADO.NET来完成它。 ExecuteStoreQuery
永远不会返回关系 - 它无法做到这一点。延迟加载无法正常工作,因为标准延迟加载基于使用Entity框架映射的静态数据库结构。您的Client
实体不能由EF映射,因为它要求每个实体只能映射一次(=在一个表或一组相关表中以防止继承或分裂)。您的Client
实体需要映射的次数与表User
中的用户数量相同。
我同意。他实际上是一名开发人员,并且说他是从“经验”中讲话的:如果您将客户表放入我的错误中,那么每个人都会受到影响,就好像它们被分离出来一样,并且一个客户表被错误地丢弃,它只会影响一个用户客户端。我知道他是从哪里来的,但这就是数据库备份的目的,等等。无论如何,我还是很重视。问题,谢谢:-) – eth0
错误地删除表格?那是什么?这在正常的应用程序体系结构中不会发生,但它确实可能发生在您的应用程序必须具有删除和创建表的权限的体系结构中。 –
@ eth0如果你有空闲时间在[The Daily WTF]上发布这个设计(http://thedailywtf.com/) – Eranga
- 1. 实体框架4.1例外
- 2. 实体框架4.1和SQLite
- 3. 实体框架(4.1)关系
- 4. 实体框架4.1。从IDS
- 5. 实体框架4.1 - 选择
- 6. 实体框架4.1 - EFTracingProvider
- 7. 实体框架4.1大量的表(715)
- 8. 实体框架 - 生成类
- 9. 实体框架4.1 DbContext生成器问题
- 10. 实体框架4.1的生成器的困惑
- 11. 实体框架4.1和预生成视图
- 12. WPF表格生成器(实体框架)
- 13. 实体框架 - 自动生成vs手动创建实体
- 14. 存储过程动态sql在实体框架4.1
- 15. 实体框架 - 动态sql
- 16. 动态表创建的实体框架
- 17. 使用实体框架动态表单
- 18. 实体框架自动生成的表名
- 19. 实体框架4.1的ObjectContext VS的DbContext
- 20. 实体框架4.1 InverseProperty属性和ForeignKey
- 21. 实体框架4.1 - 交换数据库
- 22. 实体框架4.1外键问题
- 23. 实体框架4.1虚拟属性
- 24. 了解实体框架4.1约定
- 25. 实体框架4.1 T4输出到IDbset
- 26. SaveChanges()实体框架问题4.1
- 27. 实体框架中的外键4.1
- 28. 实体框架4.1 SQL注入
- 29. 实体框架4.1坚持一个getter
- 30. 实体框架4.1插入错误
这个家伙需要了解关于RDBMS设计的基本知识:) –