Entity framework 4 实体框架代码首先延迟加载非导航属性

Entity framework 4 实体框架代码首先延迟加载非导航属性,entity-framework-4,ef-code-first,Entity Framework 4,Ef Code First,我首先使用实体框架代码CTP4 是否可以像NH3中那样延迟加载非导航属性 一个常见的例子是有一个包含二进制列的表。我只想在代码中显式请求该属性(例如image.ImageData)时检索此列的数据 谢谢 本 投票 投票 阅读 丑陋的解决方法: public static void Main() { IEnumerable<MyTable> table; using (Entities context = new Entities()) { var buffer =

我首先使用实体框架代码CTP4

是否可以像NH3中那样延迟加载非导航属性

一个常见的例子是有一个包含二进制列的表。我只想在代码中显式请求该属性(例如image.ImageData)时检索此列的数据

谢谢 本

  • 投票
  • 投票
  • 阅读
  • 丑陋的解决方法:

    public static void Main()
    {
      IEnumerable<MyTable> table;
      using (Entities context = new Entities())
      {
        var buffer =
          context.MyTable
          .Select(myTable => new
          {
            Id = myTable.Id,
            OtherColumn = myTable.OtherColumn
          })
          .ToArray();
    
        table = buffer
          .Select(t => new MyTable 
          {
            Id = t.Id, 
            OtherColumn = t.OtherColumn
          });
      }
    }
    
    publicstaticvoidmain()
    {
    可数表;
    使用(实体上下文=新实体())
    {
    变量缓冲区=
    context.MyTable
    .选择(myTable=>new
    {
    Id=myTable.Id,
    OtherColumn=myTable.OtherColumn
    })
    .ToArray();
    表=缓冲区
    .选择(t=>newmytable
    {
    Id=t.Id,
    OtherColumn=t.OtherColumn
    });
    }
    }
    

  • 这不会选择其余字段。

    只是猜测。有一种表拆分方法,可能会有所帮助:是的,这是我们在添加对延迟加载属性的支持之前对NH所做的。看起来EF代码首先也是如此。