如何select分配作业给用户?

how to select assigned job to the user?

我在 MVC 中有任务系统。我为很多用户提供相同或不同的任务。并且我显示任务的标题、描述、开始日期、完成日期和谁 are/is。这些显示 grid.mvc 中的视图页面。但是当我登录时,我可以看到每个任务。我不想每一个任务我只想看到我的任务。当然其他用户可以看到他们的任务。

在我的控制器中,我拆分了名称。

这是我的代码,

控制器:

TicketDbContext db = new TicketDbContext();

    public ActionResult Index()
    {       


        var result = db.Missions.OrderByDescending(x=>x.GivenDate).ToList();

        string ad = string.Empty;
        foreach (var item in result)
        {
            if (!string.IsNullOrEmpty(item.GivenUsers))
            {
                string[] Ids = item.GivenUsers.Split(',');

                for (int i = 0; i < Ids.Length; i++)
                {
                    int id = Convert.ToInt32(Ids[i]);
                    item.GivenUsers += db.Users.FirstOrDefault(x => x.Id == id).Name+ " " + db.Users.FirstOrDefault(x => x.Id == id).Surname+ ",";
                } 
            }               

        }

        return View(result);

    }

我的网格的屏幕截图

首先,我建议您将分配的用户 ID 分开 table

这可以处理你的情况..

var currentUserId = "";// set current userId from Where are you holding (session,identity etc..)
var result = db.Missions.OrderByDescending(x=>x.GivenDate).ToList();
result = result.Where(x=> x.GivenUsers.Split(',').Contains(currentUserId));
    foreach (var item in result)
    {
        if (!string.IsNullOrEmpty(item.GivenUsers))
        {
            int[] Ids = Array.ConvertAll(item.GivenUsers.Split(','),
                                      delegate(string s) { return int.Parse(s); }) ;
            string[] names = db.Users.Where(u => Ids.Contains(u.Id)).Select(u => u.Name+ " " + u.Surname).ToArray();
            item.GivenUsers = string.Join(",",names);

        }               

    }