使用实体框架核心在运行时扩展实体模型

时间:2020-09-08 07:45:57

标签: entity-framework entity-framework-core

该方案是ERP或CRM类型的系统,公司可能需要在其中添加传统的“用户定义的字段/列”以捕获其他数据。

这意味着我需要在运行时找到某种方法来扩展带有用户字段的实体。

我首先使用带有实体框架核心的代码。我已经在动态查询我的实体(使用Roslyn编译器解析字符串以获取选择表达式),因此我的用户可以决定要查看的列。这应该有助于查询。

我不确定该怎么做(有关其他字段,请参阅EF Core)。也许我可以在模型构建器中添加属性。我的另一个想法是在运行时以某种方式创建新模型,该模型将继承自先前的模型。
如何创建列(迁移)也存在问题,但这可以手动完成。

示例:

public class PartnerEntity
{
  public int Id {get;set;}
  public string Title {get;set;}
}

//additional columns would be for one customer:
public string ShoeSize {get;set;}

//for another:
public string CounterSerialNumber {get;set;}

关于SO也有类似的话题,但是它们很古老,没有一个使用EF Core。
Link1 Link2

0 个答案:

没有答案