【发布时间】:2017-09-20 13:05:43
【问题描述】:
如何将相关对象添加到数据库中?
我的身份用户:
public class ApplicationUser : IdentityUser
{
public ICollection<Todo> Todos { get; set; }
}
我的 Todo 模型:
public class Todo
{
public int Id { get; set; }
public string Name { get; set; }
public ApplicationUser User { get; set; }
}
我有一个像 /api/todos 这样的 WebAPI。
[HttpPost]
public async Task<IActionResult> Post([FromBody]string name)
{
var user = await _userManager.GetUserAsync(User);
// _db is IdentityDbContext that I use
var newTodo = new Todo() { Name = "do the laundry" }; // Do I have to specify the user like User = user?
_db.Todos.Add(newTodo);
await _db.SaveChangesAsync();
return CreatedAt(...);
}
问题:我做得对吗?我是否必须将用户传递给新的 Todo 项?
我可以像这样添加待办事项吗?:
user.Todos.Add(newTodo);
但是我该如何保存呢?
【问题讨论】:
-
是的,您必须通过用户。您是否尝试过添加用户并运行代码?乍一看还不错。
-
@AustinWinstanley 你的意思是它应该看起来像
new Todo() { Name = "do the laundry" , User = user };吗? -
您可以这样做或将其添加到用户待办事项列表中,然后对用户调用更新并保存更改。你试过这些了吗?这应该是你首先要做的。
标签: asp.net-core asp.net-core-mvc entity-framework-core asp.net-core-webapi asp.net-core-identity