LINQ语句中的where子句没有正确工作。

35 浏览
0 Comments

LINQ语句中的where子句没有正确工作。

我正在尝试创建一个带有如下where子句的LINQ语句:\n

 p.Users = db.UserFSMs
      .Where(t => t.UserName.Contains(userORFile.Split('_')[2]))
      .Select(new Models.UsersFSMFinal { Email=t.Email });

\n但编译器无法识别t。我该如何创建一个能够与where一起工作的上述查询?

0
0 Comments

问题出现的原因是在LINQ语句中的Select方法中没有使用正确的语法。解决方法是在Select方法中重新声明变量"t",并使用正确的语法。

具体来说,问题出现在代码中的这一行:

var allData = db.Patients
     .Where(t => t.firstName.Contains(TextBox1.Text))
     .Select(t => new
     {
          t.firstName,
          t.lastName
     });

在这行代码中,Select方法中的参数t没有被正确声明。要解决这个问题,需要在Select方法中重新声明t,使用正确的语法。修改后的代码如下:

var allData = db.Patients
     .Where(t => t.firstName.Contains(TextBox1.Text))
     .Select(t => new
     {
          t.firstName,
          t.lastName
     });

这样修改后,LINQ语句将能够正确执行,并返回期望的结果。

需要注意的是,虽然这个解决方法在技术上是正确的,但不一定是最佳的解决方案。在使用Select方法时,应该根据具体情况正确声明变量,并使用合适的语法。

0