2013-04-16 21 views
11

Veritabanını test verileriyle birleştirmek için doğru sözdizimini bulmaya çalışıyorum. Ürün tablomda yabancı bir anahtar var. Bu kategori. Veritabanını kategoriler için değerlerle ekledim, ancak bu ilişkiyi ürüne nasıl ekleyeceğime bağlı kaldım. Bu şekilde boşuna çalıştım.Kod İlk Entity Framework ile Veri Tabanı Oluşturma - Yabancı anahtar sözdizimi

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

Herkes bana doğru yönde işaret edebilir mi?

+0

Lütfen ürün sınıfını belirtin. Ürün sınıfında, yabancı anahtar alanın Kategori (Category_id) olması gerekir. Bu category_id değerini atayabilirsiniz. – Saanch

cevap

23

Kategoriden gelen yabancı anahtarın başarılması için içeriğin bağlamında bir değişiklik yapmak olduğunu öğrendim. Sonra, categoryId için bağlamı sorgulayabildim ve ürün üzerindeki CategoryId'ye kaydedebildim.

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 
} 
İlgili konular