blob byte []属性加载缓慢

时间:2015-06-01 19:29:11

标签: c# entity-framework entity-framework-6

我的类包含用于存储文件附件的字节数组属性。

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应用程序,因此只存储文件的路径不是一个选项。

0 个答案:

没有答案