我使用 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 { ... })
如果你也这么觉得的话。
我强烈建议使用强类型。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)