Je construis un modèle comme ci-dessous. La relation entre Recycler et Account est de 1: 1.Pourquoi je ne peux pas faire ToList()?
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; }
}
Mais, je reçois des exceptions quand je fais l'une ou l'autre de ces requêtes:
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();
Exception montre que ResultType is “Transient.reference[POCOFirst.Quoter]”,but recommanded is “Transient.reference[POCOFirst.Recycler]”
Si je retire le ToList()
, il fonctionne bien. Mais j'ai besoin d'une liste comme valeur de retour de la méthode. Pourquoi ne puis-je pas faire ToList()
? Merci
Si vous oubliez le 'ToList()' et passez la souris sur le mot-clé 'var', qu'est-ce que l'info-bulle indique? – ChrisF
Il montre le type de requête est IQueryable. –
Abbey