从IQueryable DB First Approach EF获取自定义列

时间:2016-11-21 19:49:34

标签: wcf linq-to-entities odata wcf-data-services wcf-data-services-client

我正在使用实体框架中的数据库优先方法,我必须从实体中检索特定的列。

Public IQueryable<Entity.Employees> GetEmployeeName(String FName,String LName)
{
     var query = (from s in Employees
                  where s.firstName = FName && s.lastName = LName
                  select new {s.firstName, s.middleName});
     return query;
}

这里,return语句抛出一个错误,它似乎与Employees(实体)列不匹配。你能帮我解决一下这个问题吗?提前谢谢。

1 个答案:

答案 0 :(得分:0)

您需要使用==进行比较,还需要使用动态类型作为返回类型,因为您要返回自定义匿名类型。试试这个

Public IQueryable<dynamic> GetEmployeeName(String FName,String LName)
{
var query=(from s in Employees
where s.firstName==FName && s.lastName==LName
select new {s.firstName,s.middleName});
return query.AsQueryable();
}

最后,您将像下面一样使用它,请记住,intelisense不适用于动态对象。

var query = GetEmployeeName("Jake", "Smith");
            List<dynamic> results = query.ToList();
            foreach (dynamic result in results)
            {
                string fristName = result.FirstName;
                string lastName = result.MiddleName;
            }