gpt4 book ai didi

entity-framework - 选择单个实体的一部分而不检索整个实体

转载 作者:行者123 更新时间:2023-12-04 07:28:09 25 4
gpt4 key购买 nike

我想从单个实体(按 Id)获取单个属性(blob)。我有:

context.References
.Single(r => r.ID == id)
.Blob;

这让我觉得效率低下,因为我得到了整个引用,只是丢弃了除 Blob 之外的所有内容。这导致

context.References
.Where(r => r.ID == id)
.Select(r => r.Blob)
.Single();

它应该只查询 Blob,但最后将 Single 作为事后想法有点烦人(但我认为有必要强制执行奇点)。我的问题是:有没有更好的方法来完成这个,或者我的第二个代码块就是这样?

谢谢!

最佳答案

恐怕就是这样。在 LINQPad 中运行您的查询表明 Entity Framework 将查询转换为:

SELECT TOP (2) 
[Extent1].[Id] AS [Id],
[Extent1].[Blob] AS [Blob],
... etc for all columns
FROM [dbo].[References] AS [Extent1]
WHERE 1 = [Extent1].[Id]

SELECT TOP (2) 
[Extent1].[Blob] AS [Blob]
FROM [dbo].[References] AS [Extent1]
WHERE 1 = [Extent1].[Id]

所以您是正确的,第二个查询稍微更有效率。这是否重要由您测试和决定。

关于entity-framework - 选择单个实体的一部分而不检索整个实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10259747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com