这是我的(简化的)代码:
控制器
var query = from f in _db.Firms
where f.Name.ToLower().Contains(search.ToLower())
|| f.Keyword.ToLower().Contains(search.ToLower())
|| f.KeywordList.ToLower().Contains(search.ToLower())
select f;
用户模型
public class User
{
[Key]
public int ID { get; set; }
public string Username { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public int FirmID { get; set; }
[ForeignKey("FirmID")]
public virtual Firm Firm { get; set; }
}
公司模式
public class Firm
{
[Key]
public int ID { get; set; }
public string Keyword { get; set; }
public string KeywordList { get; set; }
public string Name { get; set; }
public virtual ICollection<User> Users { get; set; }
}
我有一个控制器和一个视图,它确实列出了每个公司,它是数据库中的用户,其中包含某个字符串。到目前为止,这有效。现在,我还想列出公司,其中包含一个用户,该用户的用户名包含搜索字符串。我怎样才能做到这一点?
我的想法是这样的,但它不起作用,因为用户名在这里不可用:
var query = from f in _db.Firms
where f.Name.ToLower().Contains(search.ToLower())
|| f.Keyword.ToLower().Contains(search.ToLower())
|| f.KeywordList.ToLower().Contains(search.ToLower())
|| f.Users.Username.ToLower().Contains(search.ToLower())
select f;