2013-04-16 4 views
11

J'essaie de trouver la syntaxe correcte pour créer une base de données avec des données de test. J'ai une clé étrangère à ma table de produit. C'est la catégorie. J'ai ensemencé la base de données avec les valeurs pour les catégories, mais je suis resté sur la façon d'ajouter cette relation au produit. J'ai essayé de cette façon en vain.Création d'une base de données avec le code de la première entité - Syntaxe de clé étrangère

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") 
    } 
}); 

Est-ce que quelqu'un peut me diriger dans la bonne direction?

+0

Veuillez indiquer la catégorie de produit. Dans la classe de produit, vous devez avoir le champ de clé étrangère dans Category (Category_id). Vous pouvez affecter cette valeur category_id. – Saanch

Répondre

23

J'ai trouvé que pour accomplir la clé étrangère de la catégorie est de faire une sauvegarde des modifications au contexte. Ensuite, j'ai pu interroger le contexte de categoryId et l'enregistrer dans CategoryId sur le produit.

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 
} 
Questions connexes