1
我建立一个模型如下。 Recycler和Account之间的关系是1:1。为什么我不能做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; }
}
但是,我得到的例外,当我做了这两种查询:
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()
?谢谢
如果你错过了'ToList()'并将鼠标悬停在'var'关键字上,那么工具提示报告的类型是什么? – ChrisF 2012-02-12 15:30:53
它显示查询的类型是IQueryable。 –
Abbey
2012-02-12 15:44:54