【发布时间】:2020-09-17 14:39:24
【问题描述】:
有没有办法在不知道其类型的情况下找到具有唯一 ID 的实体?
例如写
DataContext.Find(Id);
而不是
DataContext.Set<T>().Find(Id);
谢谢
【问题讨论】:
-
为什么要这样做?你想解决什么问题?顺便说一句,数据库中没有通用唯一 ID 这样的东西。每个表都有自己的列来定义其主键。您不能(实际上,您不想想要)编写一个查询来搜索数据库中的所有表以按 ID 查找行。这样的查询会非常慢,锁定所有表并冻结任何使用该数据库的应用程序
-
@PanagiotisKanavos 感谢您的帮助。结果,既然这是不可能的,我应该想别的办法。无论如何谢谢;)
-
无论您想做什么,都有更好的方法来做。你真正想做的是什么?您发布的是两个错误的 sn-ps - 一个不存在,一个不应该使用。 DbContext 既不是数据库模型也不是数据库连接。它是一个工作单元,包括特定实体,仅用于特定用例。不是向客户端公开所有表的方法
-
另一种方法来做什么??????您还没有问任何问题,只是发布了可疑代码。看起来您正在像使用数据库模型一样使用 DbContext,或者尝试在 ORM 之上构建存储库 anti 模式
-
@PanagiotisKanavos 实际上我希望能够为每个产品保存评论。所以我在 cmets 表和 products 表之间建立了一对多的关系。问题从我收到评论文本和信息的地方开始,我想在该评论和产品之间建立关系,但我不知道如何在其他产品表之间找到产品
标签: c# entity-framework asp.net-core