2013-04-16 20 views
11

मैं परीक्षण डेटा के साथ डेटाबेस को सही वाक्यविन्यास खोजने की कोशिश कर रहा हूं। मेरे पास मेरी उत्पाद तालिका में एक विदेशी कुंजी है। यह श्रेणी है। मैंने श्रेणियों के मानों के साथ डेटाबेस को बीज दिया है, लेकिन इस संबंध में उत्पाद को जोड़ने के तरीके पर अटक गया है। मैंने इस तरह से कोई फायदा नहीं उठाया है।कोड प्रथम इकाई फ्रेमवर्क के साथ एक डेटाबेस को सीडिंग - विदेशी कुंजी वाक्यविन्यास

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

क्या कोई मुझे सही दिशा में इंगित कर सकता है?

+0

कृपया उत्पाद कक्षा प्रदान करें। उत्पाद श्रेणी में आपके पास श्रेणी (श्रेणी_आईडी) के लिए विदेशी कुंजी फ़ील्ड होना चाहिए। आप उस श्रेणी_आईडी मान को असाइन कर सकते हैं। – Saanch

उत्तर

23

मैंने पाया कि श्रेणी से विदेशी कुंजी को पूरा करने के लिए संदर्भ में परिवर्तनों को सहेजना है। तब मैं श्रेणी आईडी के संदर्भ को क्वेरी करने में सक्षम था और इसे उत्पाद पर श्रेणी आईडी में सहेजता था।

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 
} 
संबंधित मुद्दे