Когда я использую заполнение в приложении .NET Core, мигрирует только схема БД без фиктивных данных, которые я добавил рC#

Место общения программистов C#
Ответить
Anonymous
 Когда я использую заполнение в приложении .NET Core, мигрирует только схема БД без фиктивных данных, которые я добавил р

Сообщение Anonymous »

Я ожидаю увидеть введенные данные в базе данных SQL, применяются только миграции без введенных данных в целях тестирования.
Это пример заполнения данных, я добавил реальные идентификаторы Категории для обеспечения надежности связи между продуктами и категориями.
Я использую IEntityTypeConfiguration, а не OnModelCreating в DbContext
public class CategoryConfiguration : IEntityTypeConfiguration
{
public void Configure(EntityTypeBuilder builder)
{
builder.HasKey(p => p.Id);

builder.Property(p => p.Name)
.IsRequired();

builder.HasMany(p => p.Products)
.WithOne(p => p.Category)
.HasForeignKey(p => p.CategoryId)
.OnDelete(DeleteBehavior.SetNull);

var categories = new List {

new Category
{
Id = Guid.Parse("bdafc3c9-abe6-4ac5-bdb6-8361524ff999"),
Name = "Mobile Phones",
CreateTime = DateTime.Now
},
new Category
{
Id = Guid.Parse("f5a4eb59-26b3-4784-b427-65b5f7f57052"),
Name = "Laptops",
CreateTime = DateTime.Now
}
};
builder.HasData(categories);
}
}

public class ProductConfiguration : IEntityTypeConfiguration
{
public void Configure(EntityTypeBuilder builder)
{
builder.HasKey(p => p.Id);

builder.Property(p => p.Name)
.IsRequired();

builder.Property(p => p.Price)
.IsRequired();

builder.HasMany(p => p.Images)
.WithOne(p => p.Product)
.HasForeignKey(p => p.ProductId)
.OnDelete(DeleteBehavior.Cascade);

var products = new List {
new Product
{
Id = Guid.Parse("2cc1ca42-7f05-48e9-b223-886c5c98a4af"),
Name = "IPhone 15 Pro",
Description = "Titanum - 1TB",
Price = 59.99,
CategoryId = Guid.Parse("bdafc3c9-abe6-4ac5-bdb6-8361524ff999")
},
new Product
{
Id = Guid.Parse("c8faaae7-fee5-450c-ac98-0baaa046077d"),
Name = "IPhone 13",
Description = "Moonlight - 128GB",
Price = 29.99,
CategoryId = Guid.Parse("bdafc3c9-abe6-4ac5-bdb6-8361524ff999")
},
new Product
{
Id = Guid.Parse("e4b56b1a-6372-4e5b-9f61-03ee2b5e6b64"),
Name = "MacBook Pro 16-inch",
Description = "256GB SSD Storage / 8-Core CPU 8-Core GPU 8GB Unified Memory",
Price = 1500.99,
CategoryId = Guid.Parse("f5a4eb59-26b3-4784-b427-65b5f7f57052")
},
new Product
{
Id = Guid.Parse("0d7957d2-2ca7-43eb-b9e0-6e300da1a6b4"),
Name = "MacBook Air 13-inch",
Description = "M3 Max / 1TB / 16-core CPU 40-core GPU 48GB Unified Memory",
Price = 1350.99,
CategoryId = Guid.Parse("f5a4eb59-26b3-4784-b427-65b5f7f57052")
}
};
builder.HasData(products);
}
}


Подробнее здесь: https://stackoverflow.com/questions/791 ... he-dummy-d
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»