实体框架核心中的动态数据模型



我有一个可以在运行时由用户修改的数据库模型:

  • 向现有表添加新列
  • 添加新表

我想使用实体框架核心来访问此类模型。

我能够使用反射为新表和字段创建类型,但我无法在 DbContext 类中为这些新类型创建 DbSet 成员,因为 DbSet 需要在编译时知道类型。

有谁知道这是否可以通过 EF Core 实现? 一种将类型动态注入到 DbSet 成员的方法?

对我来说,用户是在运行时定义表及其列、关系等的人,这听起来很奇怪。可能您实际需要的是有一个表结构来支持动态数据,这更易于管理,即定义 UserModel 的表、定义这些模型属性的另一个表等。根据您的需求,这将有很大差异。

您还可以考虑使用一些特殊属性,如 XML 数据类型字段,如下所示: 向实体框架对象动态添加属性

最新更新