Мне кажется, проблема в том, что вы добавляете блог в базу данных.Вместо этого вы должны добавить авторов с их списком блогов.
В классе автора должен быть список блогов, поэтому при добавлении сущности Автор вы можете добавить столько блогов, сколько вам нужно.
public List<Blog> Blogs { get; set; }
В классе Блог вы можете изменить следующее:
public Author Author { get; set; }
Это пример того, что должно быть сделано:
private static void TestInsert2()
{
using (DefaultDB ctx = new DefaultDB())
{
RegularAuthor author1 = new RegularAuthor()
{
Name = "First Author",
Address = GetLocalIpAddress(),
DateOfFirstBlogPost = DateTime.Now
};
GuestAuthor guest1 = new GuestAuthor()
{
Name = "Second Author",
Address = GetLocalIpAddress(),
OriginalBlogAccess = "Never"
};
author1.Blogs = new List<Blog>
{
new Blog
{
Author = author1,
BlogTitle = "Mid Century Modern DIY Dog House Build"
},
new Blog
{
Author = author1,
BlogTitle = "5 Ways to Make Giant Candy for a Candyland Theme"
}
}
guest1.Blogs = new List<Blog>
{
new Blog
{
Author = guest1,
BlogTitle = "Elf Doughnut Box Printable"
}
}
context.Add(author1);
context.Add(guest1);
ctx.SaveChanges();
}
}
Поскольку блоги ссылаются на блогсвойство в объекте автора они будут добавлены в базу данных
Редактировать:
Это потребовало некоторых усилий, но я думаю, что у меня есть решение.Неверное соотношение таблиц.
Вы пытаетесь сделать так, чтобы у автора было много блогов.Теперь это означает, что объект author должен иметь коллекцию блогов.
Отношения, которые вы должны иметь, следующие:
![enter image description here](https://i.stack.imgur.com/jzIrl.jpg)
В этом сценарии у блога есть внешний ключ для автора, и, как указано в моем основном ответе, у класса автора должна быть коллекция блогов:
public partial class Author
{
public Author()
{
Blogs = new HashSet<Blog>();
}
public int authorId { get; set; }
public string name { get; set; }
public virtual ICollection<Blog> Blogs { get; set; }
}
. Между тем, класс блога:
public partial class Blog
{
public int blogId { get; set; }
public string blogTitle { get; set; }
public int? authorId { get; set; }
public virtual Author Author { get; set; }
}
Ваша модель будет:
public Model1()
{
}
public virtual DbSet<Author> Authors { get; set; }
public virtual DbSet<Blog> Blogs { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Author>()
.Property(e => e.name)
.IsUnicode(false);
modelBuilder.Entity<Blog>()
.Property(e => e.blogTitle)
.IsUnicode(false);
}
Перед запуском кода:
![enter image description here](https://i.stack.imgur.com/ptsv2.jpg)
После запуска кода:
![enter image description here](https://i.stack.imgur.com/EYqKa.jpg)