转换过滤器 ListViewModel C# 的 int 和 biging

Convert int and biging for filter ListViewModel C#

我创建了一个类似这样的 ListViewModel

public class ListPersonalsViewModel
{
    public long PersonalID { get; set; }
    public int NationalCode { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

我用这个代码

public List<ListPersonalsViewModel> GetNamePersonal(string filter = "")
{
    if (filter == null)
    {
        return db.tblPersonals.Select(p => new ListPersonalsViewModel()
                    {
                        NationalCode = p.NationalCode,
                        PersonalID = p.PersonalID,
                        FirstName = p.FirstName,
                        LastName = p.LastName
                    }).ToList();
    }

    return db.tblPersonals.Where(p => p.FirstName.Contains(filter)||
                                      p.LastName.Contains(filter) ||
                                      p.NationalCode.Contains(filter) ||
                                      p.PersonalID.Contains(filter))
                          .Select(p => new ListPersonalsViewModel()
                                           {
                                               NationalCode = p.NationalCode,
                                               PersonalID = p.PersonalID,
                                               FirstName = p.FirstName,
                                               LastName = p.LastName
                                           }).ToList();
}

现在我的问题是:我如何将 PersonalIDNationalCode 转换为字符串以供在这里工作?

这里只有 2 个我的字符串过滤器有效

我收到这 2 个错误

错误 CS1929 'long' 不包含 'Contains' 的定义和最佳扩展方法重载 'Queryable.

错误 CS1929 'int' 不包含 'Contains' 的定义和最佳扩展方法重载 'Queryable.

我觉得这样比较好理解

尝试将 属性 名称从 FirstName 更改为 FirstNameID 并在语句末尾添加一个逗号。

主要问题是 FirstNameID = p.FirstName 这一行,语句末尾缺少 "comma"。

另一个问题是,属性 名称不正确。将 "Filename" 更改为 "FileNameID".

public List<ListPersonalsViewModel> GetNamePersonal(string filter = "")
        {
            if (filter == null)
            {
                return db.tblPersonals.Select(p => new ListPersonalsViewModel()
                {
                    NationalCode = p.NationalCode,
                    PersonalID = p.PersonalID,
                    FirstNameID = p.FirstName,
                    LastName = p.LastName
                }).ToList();
            }

            return db.tblPersonals.Where(p => p.FirstName.Contains(filter) ||
                                              p.LastName.Contains(filter) ||
                                              p.NationalCode.Contains(filter) ||
                                              p.PersonalID.Contains(filter))
                                  .Select(p => new ListPersonalsViewModel()
                                  {
                                      NationalCode = p.NationalCode,
                                      PersonalID = p.PersonalID,
                                      FirstNameID = p.FirstName,
                                      LastName = p.LastName
                                  }).ToList();
        }

用这段代码我的问题就解决了

,

return db.tblPersonals.Where(p => p.FirstName.Contains(filter)||
                                  p.LastName.Contains(filter) ||
                                  p.NationalCode.ToString().Contains(filter) ||
                                  p.PersonalID.ToString().Contains(filter))
                      .Select(p => new ListPersonalsViewModel()

,