MVC5 EF6如何在模型中存储用户

时间:2015-05-22 07:24:09

标签: entity-framework asp.net-mvc-5

我需要存储某个实体的所有者(用户)。我尝试了某种类型的代码,但是当我在控制器中获取组时,所有者总是空的。

public class GroupsController : Controller
{
    private ApplicationDbContext db = 
        System.Web.HttpContext.Current.GetOwinContext().Get<ApplicationDbContext>();

    // GET: TestCreator/Groups
    public ActionResult Index()
    {
        var allGroups = db.Groups.ToArray();
        var myGroups = allGroups.Where(g => g.Owners.Contains(User.Identity.GetUserId()));
        return View(myGroups);
    }

...

public Group(List<string> owners, string name, Grade grade = 0)
    {
        Id = Guid.NewGuid().ToString();
        Owners = owners;
        Name = name;
        Grade = grade;
        Students = new List<Student>();
    }

这是模型的一部分

public class Group
{
    [Key]
    [ScaffoldColumn(false)]
    public string Id { get; set; }
    public ICollection<string> Owners { get; set; }

这是数据库初始化程序的一部分

        var gr1 = new Group(new List<string>() { user.Id }, "5б")
        {
            Students = stud1
        };
        db.Groups.Add(gr1);
        db.SaveChanges();

问题是,如果我在db.SaveChanges()之后看到db.Groups,那么我们的组有一个所有者(当前用户)。但是当我从控制器看到db.Groups时,没有所有者(空列表)。我做错了什么?

0 个答案:

没有答案