मैं एमवीसी के साथ ईएफ कोड फर्स्ट का उपयोग करने के साथ शुरू कर रहा हूं और कुछ के साथ थोड़ा सा स्टंप कर रहा हूं। मैं निम्नलिखित db संरचना है (क्षमा करें, लेकिन मैं दुर्भाग्य से एक छवि पोस्ट करने के लिए अनुमति नहीं थी):ईएफ कोड सबसे पहले कई आत्म संदर्भ संबंधों के साथ
तालिका - उत्पादों
तालिका - RelatedProducts
1-कई -> RelatedProducts.ProductID
1- उत्पादों पर कई। उत्पादक -> संबंधित उत्पाद .संबंधित उत्पाद उत्पाद
असल में मेरे पास एक ऐसा उत्पाद है जिसमें उससे संबंधित उत्पादों की श्रृंखला हो सकती है। इन्हें संबंधित उत्पाद तालिका में उत्पाद आईडी द्वारा परिभाषित रिलेशनशिप और संबंधित उत्पाद के उत्पाद आईडी के साथ रखा गया है जिसे मैंने संबंधित प्रोडक्टिड नाम दिया है।
public class MyDBEntities : DbContext
{
public DbSet<Product> Products { get; set; }
public DbSet<RelatedProduct> RelatedProducts { get; set; }
}
public class Product
{
public Guid ProductID { get; set; }
public string Name { get; set; }
public string Heading { get; set; }
public string Description { get; set; }
public decimal Price { get; set; }
public Guid CategoryID { get; set; }
public string ImageURL { get; set; }
public string LargeImageURL { get; set; }
public string Serves { get; set; }
public virtual List<RelatedProduct> RelatedProducts { get; set; }
}
public class RelatedProduct
{
public Guid ProductID { get; set; }
public Guid RelatedProductID { get; set; }
public virtual Product Product { get; set; }
public virtual Product SimilarProduct { get; set; }
}
मैं तो का उपयोग कर कोड में इन तक पहुँचने का प्रयास:
myDB.Products.Include("RelatedProducts").Where(x => x.ProductID == productID).FirstOrDefault();
लेकिन मैं निम्नलिखित त्रुटि प्राप्त हो रही: मेरे कोड में मैं निम्नलिखित वर्गों का उत्पादन किया गया
{"Invalid column name 'ProductProductID2'.\r\nInvalid column name 'ProductProductID2'.\r\nInvalid column name 'ProductProductID'.\r\nInvalid column name 'ProductProductID1'.\r\nInvalid column name 'ProductProductID2'."}
क्या क्या मैं गलत कर रहा हूँ? मैं मूल रूप से एक उत्पाद प्राप्त करना चाहता हूं, फिर संबंधित उत्पाद के माध्यम से पुन: प्रयास करें और उस उत्पाद की जानकारी प्रदर्शित करें।
ध्यान दें कि हम Product.ProductID और RelatedProduct.RelatedProductID के बीच संबंधों पर हटाना झरना नहीं कर सकते हैं सावधान रहें। यह ईएफ 4 की सीमा नहीं है: चक्रीय कैस्केडिंग डिलीट को रोकने के लिए इसकी आवश्यकता है। – anon
यह भी ध्यान रखें कि रिश्ते सममित नहीं हैं। यदि product1 को उत्पाद 2 से संबंधित के रूप में जोड़ा गया है, तो उत्पाद 2 स्वचालित रूप से product1 से संबंधित नहीं है! – anon
उत्कृष्ट, जो पूरी तरह से काम करता है, इसके लिए धन्यवाद, उम्र के लिए ऐसा करने की कोशिश कर रहा है! – knappster