我正在使用EF Core 2而我正在尝试动态地向模型添加实体。 场景是:
用户在网络应用中创建具有自定义属性的实体
我在运行时创建了一个映射此实体的类(请参阅How to emit a Type in .NET Core)
我在db上下文的OnModelCreating
方法中将创建的类添加到模型中(参见https://romiller.com/2012/03/26/dynamically-building-a-model-with-code-first/)
一切正常,除非我想在我创建新实体的同一请求(API调用)中向db写入新创建的类的新实例。
这是因为DbContext
的范围限定为请求(非瞬态),因此在我有机会创建新实体之前DbContext
调用OnModelCreating
方法。
这是我得到的错误:
The entity type 'People' was not found.
Ensure that the entity type has been added to the model.
有关如何实现这一目标的任何建议?我不认为可以根据需要拨打OnModelCreating
,我无法找到访问上下文ModelBuilder
的方法来调用它Entity
方法。
答案 0 :(得分:0)
您还需要一个新的DbContext子类型,因为OnModelCreating每个AppDomain每个DbContext类型只运行一次。