我有一个图像为 varbinary(max) 的表格和另一个更紧凑的数据(其他类型)。我想更新另一个数据但不是图像。在带有过滤器的循环(即所有记录)中选择要更新的记录。我找到了各种解决方案,但它们都使用将整个记录提取到上下文中或将现有记录(即之前某个时间提取或创建)附加到上下文中。说“之前某个时间获取或创建”是指显示所有字段的整个记录 - 不是截断图像或其他“不必要的”字段。
有没有办法在不获取任何不必要的数据(例如 varbinary 图像)但通过 EF 的情况下更新记录?也许只是获取任何轻量级 POCO 对象,而不需要所有字段,但只获取我需要的那些?或者这类任务不在 EF 的分配范围内,我必须使用普通 SQL?
好吧,只是简单的例子:
数据库表:
create table Weed
(
Id int identity(1,1) not null,
Name nvarchar(100) not null,
Description nvarchar(max) null,
Image varbinary(max) null
)
英孚的 POCO
public partial class Weed
{
public Weed()
{}
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public byte[] Image { get; set; }
}
例如,我想更新描述而不获取整个杂草(尤其是图像字段),以及名称以“A”开头的杂草。