Entity framework Ef代码优先映射
我有一个奇怪的情况 我有3个实体:Entity framework Ef代码优先映射,entity-framework,ef-code-first,Entity Framework,Ef Code First,我有一个奇怪的情况 我有3个实体: public class Product { public virtual int id {get;set;} } public class Media { public virtual ICollection<MediaProduct> mediaProducts {get;set;} } public class MediaProduct { public virtual int id {get;set;} pub
public class Product
{
public virtual int id {get;set;}
}
public class Media
{
public virtual ICollection<MediaProduct> mediaProducts {get;set;}
}
public class MediaProduct
{
public virtual int id {get;set;}
public virtual Media media {get;set;}
public virtual Product product {get;set;}
public virtual int productId { get; set; }
public virtual int mediaId { get; set; }
}
公共类产品
{
公共虚拟整数id{get;set;}
}
公共类媒体
{
公共虚拟ICollection mediaProducts{get;set;}
}
公共类媒体产品
{
公共虚拟整数id{get;set;}
公共虚拟媒体{get;set;}
公共虚拟产品产品{get;set;}
公共虚拟int productId{get;set;}
公共虚拟int mediaId{get;set;}
}
正如您在我的产品实体中看到的,我没有对MediaProduct的引用,我无法更改它
我不知道怎样才能映射这些实体
我的映射类是
public class MediaProcutMap : EntityTypeConfiguration<MediaProduct>
{
public MediaProcutMap()
{
this.ToTable("Media_Product_Mapping");
this.HasKey(pc => pc.Id);
this.HasRequired(pc => pc.media)
.WithMany(c => c.mediaProducts)
.HasForeignKey(pc => pc.mediaId);
//this.HasRequired(pc => pc.product) ???
}
}
公共类MediaProcutMap:EntityTypeConfiguration
{
公共MediaProcutMap()
{
此.ToTable(“媒体产品映射”);
this.HasKey(pc=>pc.Id);
此.HasRequired(pc=>pc.media)
.WithMany(c=>c.mediaProducts)
.HasForeignKey(pc=>pc.mediaId);
//此.HasRequired(pc=>pc.product)???
}
}
但它不起作用
请帮帮我
Marco有一个超负荷的
,其中有许多不带参数的
public class MediaProcutMap : EntityTypeConfiguration<MediaProduct>
{
public MediaProcutMap()
{
this.ToTable("Media_Product_Mapping");
this.HasKey(pc => pc.Id);
this.HasRequired(pc => pc.media)
.WithMany(c => c.mediaProducts)
.HasForeignKey(pc => pc.mediaId);
this.HasRequired(pc => pc.product).
.WithMany()
.HasForeignKey(pc => pc.productId);
}
}
公共类MediaProcutMap:EntityTypeConfiguration
{
公共MediaProcutMap()
{
此.ToTable(“媒体产品映射”);
this.HasKey(pc=>pc.Id);
此.HasRequired(pc=>pc.media)
.WithMany(c=>c.mediaProducts)
.HasForeignKey(pc=>pc.mediaId);
此.HasRequired(pc=>pc.product)。
.有很多
.HasForeignKey(pc=>pc.productId);
}
}
Hi Eranga,感谢您的帮助,但它仍然给我相同的错误:无法确定类型之间关联的主体端感谢您的帮助,这是我的完整错误::“无法确定类型“xxx.MediaProduct”和“xxx.Product”之间关联的主体端。”。必须使用关系fluent API或数据批注显式配置此关联的主端。“@Marcolo您在Product
类中有MediaProduct
类型属性吗?检查您是否正确添加了映射。我在问题中如何说我无法修改产品,因为它来自其他库,因此我遇到了此问题,您认为这是可能的还是必须有其他参考?