0

我得到了错误

cannot implicity convert type 'System.Linq.IQueryable<EntityNetimoveis.San_Imovel>' to 'EntityNetimoveis.San_Imovel' An Explicit conversion exists (are you missing a cast ?)

当我尝试以下代码时会发生这种情况

EntityNetimoveis.San2011Entities db = new EntityNetimoveis.San2011Entities();
EntityNetimoveis.San_Imovel im = db.San_Imovel.Where(a => a.Credenciada_Id == 10);

我必须进行哪种类型的转换?

4

2 回答 2

3
EntityNetimoveis.San_Imovel im = db.San_Imovel.Where(a => a.Credenciada_Id == 10);

im 的类型是 an,IQueryable<EntityNetimoveis.San_Imovel>因为您正在运行 where 查询并且可能有多个结果。如果您希望第一个结果与您的查询匹配,您应该使用 .FirstOrDefault()。尝试将您的代码更改为:

EntityNetimoveis.San_Imovel im = db.San_Imovel.FirstOrDefault(a => a.Credenciada_Id == 10);

如果您想返回多个实体并处理它们,比如说使用 foreach 循环,那么您需要将返回值的类型更改为IEnumerable<Netimoveis.San_Imovel>. 请参见以下示例:

IEnumerable<EntityNetimoveis.San_Imovel> ims = db.San_Imovel.Where(a => a.Credenciada_Id == 10);

您可以使用以下内容:

foreach(var im in ims) {
    // your code goes here
}
于 2012-08-24T13:54:02.097 回答
2

如果 lambda 可以返回多条记录:

var imList = db.San_Imovel.Where(a => a.Credenciada_Id == 10).ToList();
于 2012-08-24T13:53:45.483 回答