2013-04-16 19 views
11

Próbuję znaleźć poprawną składnię, aby wysiać bazę danych z danymi testowymi. Mam klucz obcy do mojej tabeli produktów. To jest kategoria. Zainstalowałem bazę danych z wartościami dla kategorii, ale utknąłem na tym, jak dodać tę relację do produktu. Próbowałem w ten sposób bezskutecznie.Wysiew bazy danych z kodem źródłowym pierwszej instancji - Składnia klucza obcego

context.Categories.AddOrUpdate(x => x.Name, 
    new Category 
    { 
     Name = "Fruit" 
    }); 

context.Products.AddOrUpdate(x => x.Name, 
    new Product 
    { 
     Name = "Cherries", 
     Description = "Bing Cherries", 
     Measure = "Quart Box", 
     Price = 1.11M, 
     Category = context.Categories.FirstOrDefault(x => x.Name == "Fruit") 
    } 
}); 

Czy ktoś może wskazać mi właściwy kierunek?

+0

Proszę podać klasę produktu. W klasie produktu musisz mieć pole klucza obcego do kategorii (identyfikator_kategorii). Możesz przypisać tę wartość category_id. – Saanch

Odpowiedz

23

Znalazłem, że aby wykonać klucz obcy z Kategorii, należy zapisać zmiany w kontekście. Następnie udało mi się przetestować kontekst dla identyfikatora kategorii i zapisać go w kategorii Id na produkcie.

context.Categories.AddOrUpdate(x => x.Name, 
     new Category 
     { 
      Name = "Fruit" 
     }); 

      context.SaveChanges(); 

      context.Product.AddOrUpdate(x => x.Name, 
      new Product { 
Name = "Cherries", 
Description = "Bing Cherries", 
Measure = "Quart Box", 
Price = 1.11M, 
CategoryId = context.Categories.FirstOrDefault(x => x.Name == "Fruit").Id 
}