调用此方法时出错。需要两个属性firstName和lastName
[WebMethod]
public static List<string> GetEmployees(string lifeNumber)
{
PCF.Entities.Data.Entities db = new PCF.Entities.Data.Entities();
var data = db.MasterTables
.Where(x => x.Life_Hosp == lifeNumber)
.Select(x => new { x.FirstName, x.LastName });
return data.ToList();
}
答案 0 :(得分:2)
data
是一个匿名类型的列表,其中包含两个属性FirstName
,另一个属于LastName
。您的方法的返回类型是字符串列表。显然,您的方法的返回类型与您的返回值之间存在差异。
有两种选择。
第一种方法是更改方法的返回类型并更改从方法体返回的类型。
第二种方法是将从方法体返回的字符串更改为字符串。
由于Moo-Juice已经向您展示了后一种选择,我将尝试向您展示第一种选择。
public class Employee
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
[WebMethod]
public static List<Employee> GetEmployees(string lifeNumber)
{
PCF.Entities.Data.Entities db = new PCF.Entities.Data.Entities();
var data = db.MasterTables
.Where(x => x.Life_Hosp == lifeNumber)
.Select(x => new Employee
{
FirstName = x.FirstName,
LastName = x.LastName
});
return data.ToList();
}
答案 1 :(得分:2)
正如Servy在评论中提到的那样,这是非常自我解释的。
data
将成为名字和姓氏的集合。最明显不是List<string>
。
您可能想要尝试以下方面:
var data = db.MasterTables
.Where(x => x.Life_Hosp == lifeNumber)
.Select(x => string.Concat(x.FirstName, " ", x.LastName));
结果是一个字符串 - 这就是你想要的。现在,鉴于刚刚发表的评论,您可以做其他事情:
public sealed class Name
{
public string FirstName { get; set; }
public string LastName { get; set; }
} // eo class Name
然后你的查询是:
var data = db.MasterTables
.Where(x => x.Life_Hosp == lifeNumber)
.Select(x => new Name() { FirstName = = x.FirstName, LastName = y.LastName });
但显然您必须更改方法的返回值: