Данные не вставляются в базу данных с использованием Entity Framework - PullRequest
0 голосов
/ 08 февраля 2020

Я добавил больше таблиц в мои существующие базы данных. AspNetForum и AspNetPosts. Затем я запускаю следующую команду

Scaffold-DbContext 'Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=aspnet-my-app-20191022075020' 
         Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -f

, чтобы обновить мои базы данных, потому что сначала я подумал, что это проблема.

У меня есть первичные ключи. Так что проблема не в первичных ключах. Я искал решение для inte rnet в течение 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);
}

1 Ответ

0 голосов
/ 08 февраля 2020

Попробуйте вызвать SaveChanges вместо SaveChangesAsyn c. Таким образом, вы сможете перехватить исключение, если оно есть.

подробности о SaveChanges против SaveChangesAsyn c: Entity Framework SaveChanges () против SaveChangesAsyn c () и Find () против FindAsyn c ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...