我的类包含用于存储文件附件的字节数组属性。
public class MyClass
{
public int Id { get; set; }
public string Name { get; set; }
...
[MaxLength]
public byte[] Attachment { get; set; }
}
问题在于,当获取实体的列表时,EF会从数据库加载所有附件,这在添加了许多文件后会变得很疯狂。
public static List<MyClass> GetAllMyClassData()
{
MyContext.MyEntity.ToList();
}
我在许多地方建议过表格分割。
modelBuilder.Entity<MyClass>()
.Map(f =>
{
f.Properties(p => new
{
p.Id,
p.Name
...
});
f.ToTable("MyClasses");
})
.Map(f =>
{
f.Properties(p => new
{
p.Id,
p.Attachment
});
f.ToTable("MyClassAttachments");
});
现在情况仍然一样,没有发生任何事情。
我检查了数据库,表拆分由EF完成,但是每次调用GetAllMyClassData()
时都会加载所有附件。
如何强制EF不加载附件?
知道我错了什么?
请注意,它是一个带有MS SQL的winforms应用程序,因此只存储文件的路径不是一个选项。