Используя ASP.NET Core 2.1 и Entity Framework Core 2.1, у меня есть следующие объекты:
public class Category {
public Int32 Id { get; set; }
public String Name { get; set; }
}
public class Post {
public Int32 Id { get; set; }
public Int32 CategoryId { get; set; }
public String Title { get; set; }
public String Content { get; set; }
public virtual Category Category { get; set; }
}
Для посева категорий у меня есть следующее:
modelBuilder.Entity<Category>().HasData(
new { Id = 1, Name = "Reading" },
new { Id = 2, Name = "Travelling" }
);
Однако для посева сообщений я получаю данные из файлов YML:
var posts = _service.GetPostsFromYMLFiles(path);
modelBuilder.Entity<Post>().HasData(posts);
posts
взяты из файлов YML и следующие:
new { CategoryName = "Reading", Title = "A", Content = "A Content" },
new { CategoryName = "Travelling", Title = "B", Content = "B Content" }
Эти файлы YML созданы третьей стороной, и я не могу их изменить.
Я считаю, что для заполнения этих постов мне нужно:
- Получите соответствующий идентификатор категории для каждого CategoryName;
- Создайте идентификатор для каждого сообщения.
Шаг (2) кажется простым, но как мне выполнить шаг (1)?