gpt4 book ai didi

LINQ-不选择某些字段?

转载 作者:行者123 更新时间:2023-12-04 03:47:22 25 4
gpt4 key购买 nike

我有一个与 Entity Framework 映射的LINQ查询,看起来像这样:

image = this.Context.ImageSet
.Where(n => n.ImageId == imageId)
.Where(n => n.Albums.IsPublic == true)
.Single();

这将返回一个图像对象并按预期工作。

但是,此查询返回数据库中我的Image表的所有属性。
在正常情况下,这会很好,但是这些图像包含许多二进制数据,这些数据需要很长时间才能返回。

基本上,在当前状态下,我的linq查询正在执行以下操作:
Select ImageId, Name, Data
From Images
...

但是我需要一个执行此查询的查询:
Select ImageId, Name
From Images
...

请注意,我想加载除数据外的所有内容。 (我可以在第二次异步传递中获得此数据)

最佳答案

不幸的是,如果使用LINQ to SQL,则没有最佳解决方案。

您有3种选择:

  • 您将返回带有上下文跟踪的实体,以及在所有情况下为Image的所有字段
  • 您选择字段并返回匿名类型
  • 您选择字段并返回一个强类型的自定义类,但是如果您要这样做,则会丢失跟踪。

  • 我喜欢LINQ to SQL,但这就是事实。

    我唯一的解决方案是重组数据库,并将所有大数据移动到单独的表中,然后从“图像”表中链接到该表。

    这样,在返回Image时,您只需在新的DataID字段中返回一个键,然后您可以在需要时以及需要时访问该较重的数据。

    干杯

    关于LINQ-不选择某些字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/929766/

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