这是适合您的子查询!
List<int> IdsToFind = new List<int>() {2, 3, 4};db.Users.Where(u => SqlMethods.Like(u.LastName, "%fra%")).Where(u => db.CompanyRolesToUsers .Where(crtu => IdsToFind.Contains(crtu.CompanyRoleId)) .Select(crtu => crtu.UserId) .Contains(u.Id))关于这部分问题:
predicateAnd = predicateAnd.And(c => c.LastName.Contains( TextBoxLastName.Text.Trim()));
我强烈建议在创作查询之前从文本框中提取字符串。
string searchString = TextBoxLastName.Text.Trim();predicateAnd = predicateAnd.And(c => c.LastName.Contains( searchString));
您希望对发送到数据库的内容保持良好的控制。在原始代码中,一种可能的读取结果是未修剪的字符串被发送到数据库中进行修整-这对数据库来说并不是一件好事。



