Deriving from classes generated by Entity Framewor

2020-02-14 03:06发布

I have created an entity data model and generated a database from it.

One of the entities is called Template.

Created partial classes to extend the functionality of Template works fine.

If I create a new class and try to derive from Template, I get a runtime exception upon instantiating:

Mapping and metadata information could not be found for EntityType 'Template001'.

How can I work around this? I definitely need to inherit from the EF classes.

EDIT

Does not seem possible. If that is the case, what would be the best way to implement the following requirement: The template entity stores information about templates that each have their own code to execute. That is why I was trying to derive from the entity in the first place.

2条回答
放荡不羁爱自由
2楼-- · 2020-02-14 04:00

Why do you need to inherit from entity class first of all? If you want to add some simple behavior, use partial class.

Update: Based on comments, it appears that there is possibility that behavior will be extended over the time. In this case, I would recommend using composition/aggregation, not inheritance. Let the classes that need to be extended have an entity as a field. In Raheel's scenario, it would be a class called TemplateLogic with field/property of type Template.

查看更多
Rolldiameter
3楼-- · 2020-02-14 04:03

It is not supported. You cannot derive a new type from entity and use it instead of the mapped entity type for persistence. If you want to have derived class from entity you must use mapped inheritance where every child is also mapped to the database.

查看更多
登录 后发表回答