मेरे पास चार इकाइयां हैं जिन्हें मैं पहले फ्लेंट एपीआई के माध्यम से डेटाबेस टेबल में अनुवाद करना चाहता हूं (मैं डेटाबेसanswers.org पर मिले मॉडल का उपयोग कर रहा हूं), लेकिन मैं हूं कैसे निश्चित नहीं है। मेरी समस्या यह है कि सुझाए गए मेन्यूआईडी को एक समग्र कुंजी (मेनूकोर्स और कोर्स रेसिपी चॉइस) में दो अलग-अलग तालिकाओं में माइग्रेट किया जा रहा है।कोड फर्स्ट फ्लुएंट एपीआई और नेविगेशन प्रॉपर्टीज में शामिल हों तालिका
यहाँ संदेश मैं हो रही है:
"एक या अधिक सत्यापन त्रुटियों मॉडल पीढ़ी के दौरान पाया गया:
\ tSystem.Data.Entity.Edm.EdmAssociationConstraint: में प्रॉपर्टी की संख्या रिश्ते की बाधा में आश्रित और प्रिंसिपल भूमिकाएं समान होंगी। "
यहाँ क्या मैं अपने EntityTypeConfiguration कक्षा में की कोशिश की है और यह स्पष्ट रूप से गलत है ...
public class CourseRecipeChoiceConfiguration : EntityTypeConfiguration<CourseRecipeChoice>
{
public CourseRecipeChoiceConfiguration()
{
HasKey(crc => new { crc.Id});
HasRequired(r => r.Recipe).WithMany(crc => crc.CourseRecipeChoices).HasForeignKey(crc => crc.RecipeId);
HasRequired(m => m.MenuCourse).WithMany(crc => crc.CourseRecipeChoices).HasForeignKey(crc => crc.MenuCourseId);
HasRequired(m => m.MenuCourse).WithMany(crc => crc.CourseRecipeChoices).HasForeignKey(crc => crc.SuggestedMenu_MenuCourseId);
}
}
नेविगेशन गुण के लिए सही सिंटैक्स और CourseRecipeChoice के लिए धाराप्रवाह API सिंटैक्स के लिए सही सिंटैक्स क्या है तालिका में शामिल होने के ?
public class SuggestedMenu
{
public int SuggestedMenuId { get; set; }
public virtual ICollection<MenuCourse> MenuCourses { get; set; }
}
public class MenuCourse
{
public int Id { get; set; }
public int SuggestedMenuId { get; set; }
public SuggestedMenu SuggestedMenu { get; set; }
public virtual ICollection<CourseRecipeChoice> CourseRecipeChoices { get; set; }
}
public class CourseRecipeChoice
{
public int SuggestedMenuId { get; set; }
public int MenuCourseId { get; set; }
public int Id { get; set; }
public int RecipeId { get; set; }
//How do I represent the navigation properties in this class?
}
public class Recipe
{
public int RecipeId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public ICollection<CourseRecipeChoice> CourseRecipeChoices { get; set; }
}
कुंजी इस प्रकार हैं:
- SuggestedMenu (आईडी)
- MenuCourse (क्रमांक, SuggestedMenuId)
- CourseRecipeChoice (क्रमांक, SuggestedMenuId, MenuCourseId, RecipeId) // यह वास्तव में है जहां मैं उलझन में हूं क्योंकि मॉडल के अनुसार, सुझाए गए मेन्यूआईड सुझाए गए एम में एक पीके है enu और MenuCourse और CourseRecipeChoice में एक पीएफ (यह सिर्फ बुरा डिजाइन हो सकता है?)
- पकाने की विधि (RecipeId)
क्या आप बस मुझे बता सकते हैं कि प्रत्येक तालिका के लिए कुंजी क्या हैं और विदेशी कुंजी क्या हैं, मैं अनुमान लगा रहा हूं लेकिन सुनिश्चित नहीं हूं। मुझे लगता है कि कोई बड़ा मुद्दा नहीं होना चाहिए। – NSGaga
@NSGaga मैंने अभी तक आपकी प्रतिक्रिया को पढ़ना नहीं है, लेकिन मैंने चाबियाँ जोड़ने के लिए प्रश्न अपडेट किया है ... – Robert