是否可以将表动态映射到实体框架核心或任何其他 ORM

Posted

技术标签:

【中文标题】是否可以将表动态映射到实体框架核心或任何其他 ORM【英文标题】:Is it possible to dynamically map tables to Entity Framework core or any other ORM 【发布时间】:2020-07-08 14:17:58 【问题描述】:

我工作的公司正在研究我们可以开发的应用程序的新可能性,我们想做的一件事是能够在 Entity Framework Core 或任何其他 ORM 中动态映射表(如果 Entity Framework Core 可以)没有这种可能。

假设我们开发了一个分发给多个客户的应用程序,其中一位客户提到他们希望拥有一个具有某些字段的新实体,我们更新他们的数据库以包含此模型/表,而不是更新应用程序要包含这个新模型,是否有可能以某种方式让 Entity Framework Core 动态映射此表?

到目前为止,我已经在 google 上进行了搜索,但我发现的大多数问题都是关于具有不同表名但具有相同字段的模型。

【问题讨论】:

如果您不更新应用程序,您的应用程序将如何使用新字段?? 为多个客户维护任何系统的多个版本充满了问题。通常,C# 中的 DBSet 固定为在表和类之间映射的模型。如果您想要一个纯动态模型,您可以使用 SQL 读取器和写入器并自己管理类和映射。还有一些自动映射器也可能对您有用thereformedprogrammer.net/… 我越想越觉得这不是一个可行的方案。总体思路是使用通用控制器来处理这些自定义实体,以便我们可以轻松地为客户添加新实体,而无需为应用程序编写更新。 【参考方案1】:

一种解决方案可以是使用点网编译平台(Roslyn),然后制作程序来制作程序。

【讨论】:

以上是关于是否可以将表动态映射到实体框架核心或任何其他 ORM的主要内容,如果未能解决你的问题,请参考以下文章

Python 操作Redis

python爬虫入门----- 阿里巴巴供应商爬虫

Python词典设置默认值小技巧

《python学习手册(第4版)》pdf

Django settings.py 的media路径设置

Python中的赋值,浅拷贝和深拷贝的区别