在Tags属性中获取具有特定标记的所有项目

时间:2012-09-01 15:28:21

标签: linq entity-framework

我在ASP.NET MVC项目中使用EntityFramework。

假设我有以下实体:

public class Project 
{ 
    public int ProjectID { get; set; } 
    public string Description { get; set; } 
    public string Tags { get; set; } 
} 

假设我的数据库中有以下数据:

ProjectID: 1 
Description: "My first element" 
Tags: "one, three, five, seven" 

ProjectID: 2 
Description: "My second element" 
Tags: "one, two, three, six" 

ProjectID: 3 
Description: "My third element" 
Tags: "two, three, four" 

我想返回包含特定数量标签的所有项目。因此,例如,我希望所有带有标签'one'和'three'的项目。要搜索的标记列表是动态的,并存储在如下变量中:searchFor = "one, three";

我该怎么办?

感谢。

1 个答案:

答案 0 :(得分:1)

在控制器中创建ObjectContext实体对象并调用其方法“Where” 例: db.Projects.Where(p => p.Tags.indexOf("one") > -1 && p.Tags.indexOf(three) > -1);

并将其作为列表发送到视图。 例如:

List projects = db.Projects.Where(p => p.Tags.IndexOf("one") > -1 && p.Tags.IndexOf(three) > -1).ToList();
return View(projects);