如何为实体框架中的所有实体定义公共属性

发布于 2024-11-08 05:41:38 字数 128 浏览 0 评论 0 原文

想象一下,我有几乎所有实体的 UserId(实际上我们确实有大约四列,例如几乎所有表的 userId、adddate、moddate 等)列。

如何使这样的列在单独的实体(例如父实体)中可用,并使所有其他实体(子实体)继承它?

Imagine that I have UserId (actually we do have roughly four columns like userId, adddate, moddate etc. for almost all tables) column for almost all of the entities.

How can I make such a column(s) to be available in a separate entity (say parent entity) and make all other entities (child entities) inheriting from it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

忘你却要生生世世 2024-11-15 05:41:38

尝试使用 T4 模板,如下所述 此处此处修改模板 包含一个具有这些属性的基类(继承自 EntityObject),并从该基类继承每个类。

Try using T4 templates like it is described here or here, modify the template to contain a base class (inherited from EntityObject) having these properties, and inherit each class from this base class.

隔岸观火 2024-11-15 05:41:38

如果您使用生成的实体类(POCO 或 EntityObject),您将必须在模型 (EDMX) 中定义基本抽象实体并在 TPC 继承中派生其他实体 - 只是不要这样做,因为它会引入许多其他问题 - 例如,您将从基本类型的单个 ObjectSet 访问所有实体,PK 在所有实体中必须是唯一的,等等。

另一种方法是使用自定义 POCO类(未生成)或自定义 T4 模板来创建公共对象继承,但仍使用设计器中的普通实体而无需继承。我认为这是不可能的,但几天前我用简单的例子测试了它并且它有效 - 但我仍然对这种方法有点怀疑。

If you are using generated entity classes (either POCO or EntityObject) you will have to define base abstract entity in your model (EDMX) and derive other entities in TPC inheritance - simply don't do that because it will introduce so many other problems - for example you will access all entities from the single ObjectSet of the base type, PK will have to be unique among all your entities, etc.

Another way is either using custom POCO classes (not generated) or custom T4 template to create common object inheritance but still using normal entities in the designer without inheritance. I thought that this is not possible but few days ago I tested it with simple example and it worked - but I'm still little bit suspicious to this approach.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文