vid*_*oon 9 linq linq-to-entities
我有一个与实体框架映射的LINQ查询,看起来像这样:
image = this.Context.ImageSet
.Where(n => n.ImageId == imageId)
.Where(n => n.Albums.IsPublic == true)
.Single();
Run Code Online (Sandbox Code Playgroud)
这将返回单个图像对象并按预期工作.
但是,此查询将返回数据库中我的Image表的所有属性.在正常情况下,这样会很好,但这些图像包含很多二进制数据需要很长时间才能返回.
基本上,在它的当前状态我的linq查询正在做:
Select ImageId, Name, Data
From Images
...
Run Code Online (Sandbox Code Playgroud)
但我需要一个执行此instread的查询:
Select ImageId, Name
From Images
...
Run Code Online (Sandbox Code Playgroud)
注意我想加载除数据之外的所有内容.(我可以在第二次异步传递中获取此数据)
不幸的是,如果使用LINQ to SQL,则没有最佳解决方案.
你有3个选择:
我喜欢LINQ to SQL,但就是这样.
我唯一的解决方案是重构DataBase,将所有大型数据移动到一个单独的表中,并从Image表链接到它.
这样,当返回Image时,您只返回新DataID字段中的一个键,然后您可以在需要时访问那些较重的数据.
干杯