我正在使用LINQ,并且我最初是通过表中的主键搜索的。但是,现在我需要将我的搜索字段传递给大量页面(这使得URL非常大)。我想通过从页面之间传递Guid到在页面之间传递字符串来解决此问题。这是什么之前,我有:如何在LINQ中使用字符串进行查询
public ActionResult TechKnowledgebaseList(Guid? createdById)
{
var model = db.Knowledgebases.AsQueryable();
if (createdById != null & createdById != Guid.Empty)
{
model = model.Where(k => k.CreatedById == createdById);
ViewBag.CreatedBy = db.Users.Where(c => c.UserId == createdById).First().FullName;
ViewBag.CreatedById = createdById;
}
model = model.OrderBy(k => k.CreatedDate);
var result = model.ToList();
return View(result);
}
这里是我想现在要做的:
public ActionResult TechKnowledgebaseList(string? createdBy)
{
var model = db.Knowledgebases.AsQueryable();
if (createdBy != null)
{
model = model.Where(c => c.CreatedBy.FullName == createdBy);
ViewBag.CreatedBy = db.Users.Where(c => c.UserName == createdBy).First().FullName;
ViewBag.CreatedBy = createdBy;
}
model = model.OrderBy(k => k.CreatedDate);
var result = model.ToList();
return View(result);
}
正如你可以看到我传递一个刺现在(可以为空)。不过,我得到的错误:
Operator '==' cannot be applied to operands of type 'string' and 'string?'
'string?'没有意义,因为它是一个引用类型。只要把''离开。 –
'串? createdBy'编译? –
@Thomas是的,我没有得到该行的错误。 – djblois