Почему я не могу сделать ToList ()? - PullRequest
1 голос
/ 12 февраля 2012

Я строю модель, как показано ниже.Соотношение между Recycler и Account составляет 1: 1.

public class MyContext : DbContext
{
    public DbSet<Quoter> Quoters { get; set; }
    public DbSet<Account> Accounts { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Account>()
            .HasRequired(a => a.RecyclerRef)
            .WithRequiredDependent(r => r.AccountRef);
    }
}

public class Quoter
{
    public int QuoterId { get; set; }
    public string Text { get; set; }

}

public class Recycler : Quoter
{
    public string Description { get; set; }
    public virtual Account AccountRef { get; set; }
}

public class Account
{
    public int AccountId { get; set; }
    public Recycler RecyclerRef { get; set; }
}

Но я получаю исключения при выполнении любого из следующих запросов:

var query1 = context.Quoters
    .OfType<Recycler>()
    .Include(r => r.AccountRef)
    .Where(r => r.QuoterId == 1)
    .ToList();

var query2 = context.Set<Recycler>()
    .Include(r => r.AccountRef)
    .Where(r => r.QuoterId == 1)
    .ToList();

Исключение показывает, что ResultType is “Transient.reference[POCOFirst.Quoter]”,but recommanded is “Transient.reference[POCOFirst.Recycler]”

Если я уберу ToList(), все будет хорошо.Но мне нужен список в качестве возвращаемого значения метода.

Почему я не могу сделать ToList()?Спасибо

1 Ответ

0 голосов
/ 12 февраля 2012

Похоже, вы наткнулись на эту ошибку в EF. Еще одна ссылка на ошибка .

Обходной путь - удалить метод Include.

...