首页 > 解决方案 > 数据不会使用实体框架插入到数据库中

问题描述

我在现有数据库中添加了更多表。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);
}

标签: c#asp.netsql-serverdatabaseentity-framework

解决方案


尝试调用 SaveChanges 而不是 SaveChangesAsync。这样,您将能够捕获异常(如果有)。

有关 SaveChanges 与 SaveChangesAsync 的详细信息: 实体框架 SaveChanges() 与 SaveChangesAsync() 和 Find() 与 FindAsync()


推荐阅读