我需要存储某个实体的所有者(用户)。我尝试了某种类型的代码,但是当我在控制器中获取组时,所有者总是空的。
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时,没有所有者(空列表)。我做错了什么?