I start by using EF Code First with MVC and am a bit confused about something. I have the following db structure (sorry, but I was not allowed to post the image, unfortunately):
Table - Products
Table - Related Products
1-Lots on Products.ProductID → RelatedProducts.ProductID
1-Lots on Products.ProductID → RelatedProducts.RelatedProductID
Basically, I have a product that can have a number of products related to it. They are stored in the RelatedProducts table with the relationship defined by ProductID and ProductID of the corresponding product, which I named RelatedProductID. In my code, I created the following classes:
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; } }
Then I will try to access them in the code using:
myDB.Products.Include("RelatedProducts").Where(x => x.ProductID == productID).FirstOrDefault();
But I keep getting the following error:
{"Invalid column name 'ProductProductID2'.\r\nInvalid column name 'ProductProductID2'.\r\nInvalid column name 'ProductProductID'.\r\nInvalid column name 'ProductProductID1'.\r\nInvalid column name 'ProductProductID2'."}
What am I doing wrong? I basically want to get the product, then iterate through the Related Products and display this product information.
many-to-many entity-framework-4 self-reference entity-framework-ctp5
knappster Mar 11 2018-11-11T00: 00Z
source share