LINQ to实体中的InvalidCastException

时间:2016-08-22 10:33:58

标签: c# entity-framework linq

我尝试使用Linq查询DBSet,但会抛出InvalidCastException

  

" ... type' System.Data.Entity.Infrastructure.DbQuery   1 [Cercami.Model.Articolo]' on type' System.Data.Entity.DbSet   1 [Cercami.Model.Articolo]'"

查询下方:

private DbSet<Articolo> FiltraArticoliPerRichiestaDaDB(int id)
{
    DbSet<Articolo> Result = (DbSet<Articolo>)from Art in DB.Articoli
                                               where Art.Fk_Richiesta == id
                                               select Art;
    return Result;
}

DB.Articoli是DBSet<Articolo>

任何帮助?

1 个答案:

答案 0 :(得分:5)

以下查询:

from Art in DB.Articoli
where Art.Fk_Richiesta == id
select Art;

会返回IEnumerable<Articolo>。据说它无法投放到DbSet<Articolo>

此外,我认为你可能想要这个:

public IEnumerable<Articolo> FiltraArticoliPerRichiestaDaDB(int id)
{
    var arts = from Art in DB.Articoli
               where Art.Fk_Richiesta == id
               select Art;

    return arts;
}

我也更改了方法的访问修饰符,因为我认为它应该是一个公共(可访问)方法。如果不是这种情况,您只需将其更改回private