EF和LINK查询未在“选择”中提供所有表值

时间:2013-01-08 18:23:59

标签: linq entity-framework

如何在“选择”中未包含的“where”中使用列? “where”方法没有显示我的SQL Server表中的所有列,只显示select语句中的3列。我需要根据表中的不同列进行选择:

using (var context = new URIntakeEntities())
{
    return context.Claims.Select(
        u => new Models.Claim
        {
            ClaimNumber = u.ClaimNumber,
            DateOfInjury = u.DateOfInjury,
            Denied = u.Denied
        }).Where(u => u.?????).ToList();
}

2 个答案:

答案 0 :(得分:3)

您应该在where之前移动select statement声明。

using (var context = new URIntakeEntities())
{
    return context.Claims.Where(u=> u.?????).Select(
        u => new Models.Claim
        {
            ClaimNumber = u.ClaimNumber,
            DateOfInjury = u.DateOfInjury,
            Denied = u.Denied
        }).ToList();
}

答案 1 :(得分:2)

  

如何使用我未包含在“where”中的列   “选择”?

你做不到。何处应用于当前类型的序列。因此,您应该在投影结果之前应用过滤器:

using (var context = new URIntakeEntities())
{
    return context.Claims
                  .Where(u => u.?????)
                  .Select(u => new Models.Claim 
                   {
                       ClaimNumber = u.ClaimNumber,
                       DateOfInjury = u.DateOfInjury,
                       Denied = u.Denied
                   }).ToList();
}