сделать свойство byte [] загруженным - PullRequest
3 голосов
/ 07 апреля 2011

Я использую Код EF4 сначала , и у меня есть свойство:

public byte[] Bytes {get;set;}

, можно ли загрузить это свойство лениво (только когда это необходимо)?

Ответы [ 2 ]

5 голосов
/ 07 апреля 2011

Работы по разделению таблиц в EF 4.1 RC:

public class Item
{
    public int Id { get; set; }
    ...
    public virtual ItemDetail ItemDetail { get; set; }
}

public class ItemDetail
{
    public int Id { get; set; }
    public byte[] Bytes { get; set; }
}

public class Context : DbContext
{
    public DbSet<Item> Items { get; set; }
    public DbSet<ItemDetail> ItemDetails { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);

        modelBuilder.Entity<Item>().ToTable("Items");
        modelBuilder.Entity<ItemDetail>().ToTable("Items");
        modelBuilder.Entity<Item>()
            .HasRequired(i => i.ItemDetail)
            .WithRequiredPrincipal();
    }
}
1 голос
/ 07 апреля 2011

Это действительно старый общий запрос, так как EF 1, EF 4 и все еще в EF 4.1 .

Ссылка относится к CTP5, и единственно возможное решение - Разделение таблицы . В основном вам нужно определить два класса сущностей, но сопоставить их с одной таблицей в базе данных. Задача загрузки байта [] затем сводится к загрузке обычного свойства навигации.

Ответ в посте говорит об ошибке в CTP5, из-за которой расщепление таблиц не работает должным образом, но, надеюсь, сейчас исправлено в EF 4.1 RC (но я не знаю, действительно ли это исправлено).

...