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

use*_*926 0 c# asp.net

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

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

Blo*_*ard 7

您误解了错误消息.实际上(就像)

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

这意味着你试图IEnumerable<Contact>在方法签名时返回一个IEnumerable<Contacts>(注意s).

编译器说,你可以显式地转换IEnumerable<Contacts>(转换存在) -不是说你显式转换.

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