У меня неожиданно возникло такое странное поведение (я сравнил свои файлы в системе управления версиями (tfs), чтобы убедиться, что я ничего не изменил и не нашел ничего другого).
Я заполняю свою базу данных некоторыми метаданными, и я вижу, что у нее очень странное поведение, которого я никогда раньше не видел.Я вставляю сущность «Продукт», и она вставляет эту сущность 2 раза , первая вставка верна и имеет все, что должна иметь, другая имеет свойства NULL (строковые значения), но некоторые (например, datetime) имеютзначения.
Я понятия не имею, почему это происходит, это происходит, когда я вызываю base.Seed (ctx);метод, который я уверен, так как я остановил Webapp после этого, прежде чем он достиг чего-либо еще.
Эта сущность Product имеет связанные сущности, для которых все остальные данные правильно созданы в моих таблицах.Нет ничего плохого, кроме этого продукта.
Я пытался посеять только 1 сущность продукта вместо того, чтобы добавлять другие, те же самые результаты. Я что-то наблюдал: еще были посеяны другие сущности, поэтому я пошел и посмотрел, где это произошло,это произошло при добавлении Закупочной цены на картинке:
Мой продукт:
public class Product : BaseEntity
{
public ICollection<Supplier> Suppliers { get; set; }
public ICollection<PurchasePrice> PurchasePrices { get; set; }
}
Мой поставщик:
public class Supplier : BaseEntity
{
public ICollection<PurchasePrice> PurchasePrices { get; set; }
public ICollection<Product> Products { get; set; }
}
Моя заявка на покупку:
public class PurchasePrice:BaseEntity
{
public decimal Value { get; set; }
public Supplier Supplier { get; set; }
public Product Product { get; set; }
}
Засев:
Supplier supplier1 = new Supplier("Microsoft", "Microsoft is the best supplier but its expensive", "btw nummer", "0800-123456", "microsoft@email.com", "contact person name");
ctx.Suppliers.Add(supplier1);
PurchasePrice purchaseprice = new PurchasePrice((decimal)17.70, supplier1);
ctx.PurchasePrices.Add(purchaseprice);
Product product1 = new Product("test product 1", supplier1, purchaseprice);
ctx.Products.Add(product1);
base.Seed(ctx);
Не знаю, куда мне обратитьсяпотому что ничего не изменилось ни в моей модели, ни в моем способе посева.Я пытался использовать AddOrUpdate (), но это не сработало.
Я использую EF6 в веб-приложении MVC с использованием подхода Code-first без миграций (пока).У кого-нибудь есть предложения, пожалуйста?