Я пытаюсь установить внешний ключ для 2 классов с использованием FluentAPI и путать путаницу на пути его реализации.Внешний ключ с Fluent API - Code First
ApplicationUser
использует модель ASP.NET Идентичность и имеет UserId в виде строки
public class ApplicationUser : IdentityUser
{
public virtual List<UserProduct> Orders { get; set; }
}
Product
, который имеет составной ключ на колонках ProductID
и ProductCategoryID
public class Product
{
public int ProductID { get; set; }
public string ProductCategoryID { get; set; }
public virtual List<UserProduct> Orders { get; set; }
...
}
и другой класс UserProduct
, который будет иметь многочастичных to-many между ApplicationUser
и Product
стол
public partial class UserProduct
{
public string UserId { get; set; }
public int ProductID { get; set; }
public string ProductCategoryID { get; set; }
public virtual ApplicationUser User { get; set; }
public virtual Product Product { get; set; }
}
Код FluentAPI выглядит
modelBuilder.Entity<Product>().Property(t => t.ProductID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
modelBuilder.Entity<Product>().HasKey(x => new { x.ProductID, x.ProductCategoryID });
modelBuilder.Entity<UserProduct>().HasKey(x => new {x.UserId, x.ProductID, x.ProductCategoryID});
Как установить внешний ключ отношения UserProduct
с ApplicationUser
и Product
?
эта ссылка может быть полезно: http://stackoverflow.com/questions/29831729/asp-net-mvc-many-to-many-relationship-using-my-own-table – Iraj