没有显式转换(你是否错过了演员表)

时间:2014-04-04 01:08:09

标签: c# asp.net

我的代码确实有效,但现在它告诉我我的回程行中有一个明确的转换。

public IEnumerable<Contacts> GetAllContacts()
{
    var Contacts = from c in dbc.Contacts select c;
    return (IEnumerable<Contact>)Contacts;
}

1 个答案:

答案 0 :(得分:6)

您误解了错误消息。它实际上是(类似的)

  

无法隐式将System.IEnumerable<Contact>类型转换为System.IEnumerable<Contacts>。存在显式转换(您是否错过了演员?)。

这意味着您在方法签名显示IEnumerable<Contact>时尝试返回IEnumerable<Contacts>(请注意s)。

编译器说你可以明确地转换为IEnumerable<Contacts>(存在转换) - 而不是 明确转换。

因此,您需要将演员表更改为(IEnumerable<Contacts>)Contacts,以匹配方法签名和LINQ查询的结果。