我向现有数据库添加了更多表。 AspNetForum和AspNetPosts。然后我运行以下命令]
Scaffold-DbContext 'Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=aspnet-my-app-20191022075020'
Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -f
为了更新我的数据库,因为首先我认为这是问题所在。
我有主键。因此,问题不在于主键。我已经在互联网上搜索了2天以寻求解决方案,但无法确定问题出在哪里。
我是否需要再次更新数据库?有人知道这里发生了什么吗?
我的数据库模型类如下:
namespace my_app.Models
{
public partial class AspNetForum
{
[Key]
public int topic_id { get; set; }
public string topic_title { get; set; }
public DateTime? topic_create_time { get; set; }
public string topic_owner { get; set; }
}
public partial class AspNetPosts
{
[Key]
public int post_id { get; set; }
public int topic_id { get; set; }
public string post_text { get; set; }
public DateTime? post_create_time { get; set; }
public string post_owner { get; set; }
}
}
控制器:
[HttpPost]
public ActionResult AddTopic(AddTopic kati)
{
if (ModelState.IsValid)
{
AspNetForum topic = new AspNetForum
{
topic_title = kati.Topic_Title,
topic_create_time = DateTime.Now,
topic_owner = kati.Email
};
dbContext.AspNetForum.Add(topic);
dbContext.SaveChangesAsync();
int id = topic.topic_id;
AspNetPosts fp = new AspNetPosts
{
topic_id = id,
post_text = kati.Topic_Post,
post_create_time = DateTime.Now,
post_owner = kati.Email
};
dbContext.AspNetPosts.Add(fp);
dbContext.SaveChangesAsync();
}
return View(kati);
}
尝试调用SaveChanges而不是SaveChangesAsync。这样,您将可以捕获异常(如果有)。
关于SaveChanges与SaveChangesAsync的详细信息:Entity Framework SaveChanges() vs. SaveChangesAsync() and Find() vs. FindAsync()