C#Linq搜索对象链接属性

时间:2015-08-10 18:21:54

标签: c# asp.net-mvc linq linq-to-sql

我试图在我的对象集的某些属性中进行一些搜索,但是我在正确的方法上安装我的linq查询时遇到了一些麻烦,我有我的VT_Video类,它有其属性和一些链接对象

user given word

我想要完成的是在Video collectionVT_Video.titleVT_Video.description以及VT_Video.VT_VideoTag.VT_Tag.name内搜索title内的description,我设法做到了far仅搜索var myVideos = db.VT_Video.Include("VT_VideoTag") .Include("VT_VideoTag.VT_Tag") .Where(vid => vid.descricao.Contains(strBusca) || vid.titulo.Contains(strBusca)).ToList(); public static void main(String[] args) { String date = "1.43701862E9"; java.util.Date time = new java.util.Date(Double.valueOf(date).longValue()*1000); System.out.println(time); }

Wed Jul 15 23:50:20 EDT 2015

现在,我知道我可以用一些foreach和额外的代码做我想做的事情,但我想知道是否可以使用linq来做它并保持我的代码干净。

感谢。

1 个答案:

答案 0 :(得分:2)

我没有使用LINQ to SQL,但似乎.Any()可以满足您的要求:

var myVideos = db.VT_Video.Include("VT_VideoTag")
                          .Include("VT_VideoTag.VT_Tag")
                          .Where(vid =>
                                 vid.descricao.Contains(strBusca) ||
                                 vid.titulo.Contains(strBusca) ||
                                 vid.VT_VideoTag.Any(tag => tag.name.Contains(strBusca))).ToList();

注意我添加了这个条款:

vid.VT_VideoTag.Any(tag => tag.name.Contains(strBusca))

如果集合中的任何标记具有包含搜索字符串的名称,则返回true。