无法将模型类型隐式转换为字符串问题
本文关键字:转换 字符串 问题 模型 类型 | 更新日期: 2023-09-27 18:37:12
我真的不知道出了什么问题:我正在使用 asp.net web api 学习有关 rest Web 服务的教程,并在GET(int id)
中收到此错误:无法将类型 Models.Client
隐式转换为 string
这是我的代码:
public string Get(int id)
{
using (ClientDB db = new ClientDB())
{
return db.Clients.FirstOrDefault<Client>(c => c.Id == id);
}
}
模型中的 Id 是整数类型,因此是id
我也尝试了SingleOrDefault
而不是FirstOrDefault
记下方法的签名。return
类型是string
:
public string Get(int id) //this signature shows that you should return a string
但是您在方法块中返回一个Client
:
return db.Clients.FirstOrDefault<Client>(c => c.Id == id); //you return a Client (or Default) here!
因此,您遇到了错误。
您需要更改返回Client
的方法之一:
public Client Get(int id) //change to return Client
或者更改块中的return
以返回string
return db.Clients.FirstOrDefault<Client>(c => c.Id == id).ToString();
对于后一种解决方案,请注意FirstOrDefault
会导致null
。更安全的方法是:
Client client = db.Clients.FirstOrDefault<Client>(c => c.Id == id);
return client == null ? null : client.ToString();
在 C#6 中,可以简化语法:
return db.Clients.FirstOrDefault<Client>(c => c.Id == id)?.ToString();