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();
例外は私がToList()
を削除した場合ResultType is “Transient.reference[POCOFirst.Quoter]”,but recommanded is “Transient.reference[POCOFirst.Recycler]”
が、それがうまく機能することを示しているが。しかし、メソッドの戻り値としてリストが必要です。
なぜ私はToList()
を実行できませんか?ありがとう
'ToList()'を見逃し、 'var'キーワードの上にマウスを置くとツールチップがそのタイプをどのように報告しますか? – ChrisF
これは、クエリのタイプがIQueryableであることを示しています。 –
Abbey