可以动态添加属性到c#类与Entity Framework一起使用吗?

时间:2015-09-28 16:14:42

标签: c# .net entity-framework

这个答案描述了一种在运行时添加"添加"通过创建要添加属性的类的基类来创建类的属性。 https://stackoverflow.com/a/14724876/2437521

是否可以将使用反射创建的此类映射到实体框架中的表或视图(最有可能在OnModelBuilding方法中)

在人们说'#34;这是一个愚蠢的想法之前"让我告诉我想要完成的事情。我们有一个数据提供程序,它与多个DBMS平台兼容,并使用EF作为单一代码路径来实现此兼容性。我们需要能够使用Entity Framework映射到数据库中的视图来执行过滤等操作。

这很简单,EF可以毫无困难地完成这些工作。这就是问题所在。我们需要能够将自定义列加入此视图,并能够在这些自定义列上进行搜索,排序,过滤等。

我立刻想到,drat,EF不能这样做所以我做了查询这个视图的方法只是访问下面的vanilla ADO.NET提供程序,并且用平台无关的SQL编写了近1000行代码。

以下是我能想到的问题,需要解决这些问题才能使Entity Framework的运行时配置工作:

  1. 使EF Model Builder映射到运行时生成的Emitted类。
  2. 以某种方式使用反射来创建可用于传递到IQueryable扩展方法的表达式
  3. 假设EF将使用这些表达式并实际生成所需的SQL。
  4. EF代码存在于我们的核心产品中,一旦部署就无法重新编译,因此我试图在运行时完成所有这些操作。

0 个答案:

没有答案