![]() |
1
2
如果我正确理解该方法,它将基于主键返回任何类型T的单个记录。 我们还有一个通用存储库,但界面如下:
以及我们的通用存储库实现:
因此,要获得“Post”的等效单记录:
这与原始代码大不相同,因为调用代码指定主键是什么(或标识唯一记录的方法)。 老实说,尝试基于一个固定的主键值动态地获取一个唯一的记录是非常疯狂的- 如果是复合键呢? 我看不出那代码是怎么工作的。 很高兴看到其他答案,但我会保持简单。 如果你想让代码获取基于T的实体集,我可以共享它——但它非常简单。 如果希望方法获取单个记录,请让调用代码提供谓词/键:
然后,如果例如“Post”有一个组合键“PostName”和“PostType”:
在您的示例中,存储库正在指示您的模型,使每个实体都有一个列主键。 您的存储库应该 帮助 你的模型,而不是定义它。
编辑-代码
很简单,很安全,因为
你的
哦。 |
![]() |
Drago · Linq通过比较Id和具有Id的对象列表来查询获取列表 2 年前 |
![]() |
Niyazi Babayev · 如何在表达式中动态应用表达式? 2 年前 |
![]() |
Murat Güzel · EF存储库模式错误{'Id'}已被跟踪 2 年前 |
![]() |
dotnetdevcsharp · 减少基于数据类型获取设置的方法数量 2 年前 |
![]() |
saravanan049 · 在实体框架中回滚Azure SQL数据库 2 年前 |