Я хочу поблагодарить всех, кто внес свой вклад в любом случае!
я неожиданно возникло такое странное поведение (я сравнил свои файлы в системе контроля версий (tfs), чтобы убедиться, что я ничего не изменил и не нашел ничего другого).
Я заполняю свою базу данных некоторыми метаданными, и я вижу, что у нее очень странное поведение, которого я никогда раньше не видел. Я вставляю сущность "Продукт", и она вставляет эту сущность2 разапервая вставка верна и имеет все, что должна иметь, другая имеет свойства NULL (строковые значения), но некоторые (например, datetime) имеют значения.
Я понятия не имею, почему это происходит, это происходит, когда я вызываю base.Seed (ctx); метод, который я уверен, так как я остановил Webapp после этого, прежде чем он достиг чего-либо еще.
Эта сущность Product имеет связанные сущности, для которых все остальные данные правильно созданы в моих таблицах. Нет ничего плохого, кроме этого продукта.
Я пытался заполнить только одну сущность продукта, а не добавлять другие, такие же результаты. Я что-то наблюдал: были еще другие объекты, которые были посеяны, поэтому я пошел и посмотрел, где это произошло, именно при добавлении BuyPrice на рисунке это произошло:
Мой продукт
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", "[email protected]", "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 без миграций (пока). У кого-нибудь есть предложения, пожалуйста?