У меня проблема с приложением в postgres.Для справки я пытаюсь реализовать эту модель БД:
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
public List<Post> Posts { get; set; }
}
public class Post
{
public int PostId { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public int BlogId { get; set; }
public Blog Blog { get; set; }
}
Я смог правильно создать базу данных в Postgres, подключить свое приложение .Net к базе данных и т. Д., Единственное, что меня сдерживает, это после сохраненияобъект:
var blog = new Blog();
blog.Url = "UrlTest";
var post = new List<Post>();
var entry = new Post();
post.Title = "Entry Title";
post.Add(entry);
blog.Posts = post;
context.Blog.Add(blog);
context.SaveChanges();
Просто прямое отношение ко многим.После сохранения изменений я запрашиваю контекст, и он видит взаимосвязь только что созданного блога и поста.
К сожалению, когда я перезапускаю свое .Net Core приложение и пытаюсь перечислить весь блог, он будет отображаться как нулевой, но когда я зашел на сервер базы данных и запросил таблицу сообщений, я смог подтвердить, что у него все еще есть блог.Id.
Я перепробовал все предложения ниже, но с моей стороны ничего не работает: Пустой внешний ключ кода структуры сущности
Редактировать: Вот мой DbContext:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Blog>();
modelBuilder.Entity<Post>();
modelBuilder.Entity<Blog>()
.HasMany(c => c.Post)
.WithOne(c => c.Blog)
.HasForeignKey(c => c.BlogId)
.OnDelete(deleteBehavior: DeleteBehavior.Cascade);
base.OnModelCreating(modelBuilder);
}
public DbSet<Post> Posts { get; set; }
public DbSet<Blog> Blogs { get; set; }
Я также пытался поместить виртуальное в список в модели блога и блог в модели поста, но не сработало