У меня есть файл конфигурации сущностей, и я заполняю данные с помощью HasData
, пример ниже.
public class PublicationConfiguration : IEntityTypeConfiguration<Publication>
{
public void Configure(EntityTypeBuilder<Publication> builder)
{
builder.Property(p => p.Image)
.HasMaxLength(256)
.HasDefaultValue("default-publication.png")
.IsRequired();
builder.Property(p => p.Title)
.HasMaxLength(256)
.IsRequired();
builder.Property(p => p.Value)
.IsRequired();
builder.Property(p => p.PublisherId)
.IsRequired();
builder.Property(p => p.CategoryId)
.IsRequired();
builder.HasOne(p => p.Category)
.WithMany(categ => categ.Publications)
.OnDelete(DeleteBehavior.Restrict);
builder.HasOne(p => p.Publisher)
.WithMany(pub => pub.Publications)
.OnDelete(DeleteBehavior.Restrict);
builder.HasData(
new Publication {
Id = "publication-one",
Title = "the first publication",
Value = "the content of the very first publication on the web-site",
CreatedAt = DateTime.Now,
CategoryId = "category-one",
PublisherId = "publisher-one",
Image = "image"
},
new Publication
{
Id = "publication-two",
Title = "the second publication",
Value = "the content of the second publication on the web-site",
CreatedAt = DateTime.Now,
CategoryId = "category-one",
PublisherId = "publisher-two",
Image = "image"
},
new Publication
{
Id = "publication-three",
Title = "the third publication",
Value = "the content of the third publication on the web-site",
CreatedAt = DateTime.Now,
CategoryId = "category-two",
PublisherId = "publisher-one",
Image = "image"
}
);
}
}
Как видите, у меня есть свойство с именем Value
, это просто string, но я собираюсь изменить его на массив строк и добавить некоторую реальную информацию, означающую, что Value
будет содержать более тысячи символов, более того, здесь есть только 3 Publications
, но я хочу добавить еще 10. Таким образом, моя сеялка будет выглядеть огромной и ужасной, и мне это не нравится.
Так что я хотел бы переместить эти данные куда-нибудь еще, может быть, в файл json, а затем прочитать данные из этого файла или, возможно, есть лучший способ, тем не менее, я понятия не имею, как я могу сделать это и как это сделать правильно.
Вопрос в том, что является лучшим решением этой проблемы? И я был бы рад увидеть код решения.