没有使用实体框架将数据插入数据库中

问题描述 投票:0回答:1

我向现有数据库添加了更多表。 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.net sql-server database entity-framework
1个回答
0
投票

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

关于SaveChanges与SaveChangesAsync的详细信息:Entity Framework SaveChanges() vs. SaveChangesAsync() and Find() vs. FindAsync()

© www.soinside.com 2019 - 2024. All rights reserved.