gpt4 book ai didi

c# - EntityFramework Core 2.0 跳过加载专栏

转载 作者:行者123 更新时间:2023-11-30 20:29:27 25 4
gpt4 key购买 nike

我使用 EF core 将一些文件保存到 MSSQL 数据库中,其结构如下

public class UploadedFile
{
public int Id { get; set; }
public string Source { get; set; }
public byte[] Content { get; set; }

我希望能够从数据库加载“UploadedFiles”列表,而无需实际从数据库读取内容列。所以我真的不能使用

await _context.UploadedFiles.ToListAsync();

我相信我可以将类似下面的内容与存储过程一起使用。

_context.Set<UploadedFiles>().FromSql("dbo.spGetUploadedFiles")

但是,还有其他不涉及使用存储过程的方法吗?我无法取消映射模型中的列,因为我需要它来插入/读取单个项目。谢谢。

最佳答案

您基本上可以使用 .Select({..) 来指定要返回哪些列:

public class MyItem
{
public int Id { get; set; }
public string Source { get; set; }
}

var data = _context.UploadedFiles
.Select(p => new MyItem
{
Id = p.Id,
Source = p.Source
})
.ToListAsync();

通过这种方式,您可以告诉 EF 仅针对这些列生成选择,仅此而已。如果您愿意,还可以选择一个匿名对象,例如 .Select(p => new { ... })

我强烈建议使用强类型。

关于c# - EntityFramework Core 2.0 跳过加载专栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46122299/

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