我的数据库(多对多表)中有一个表,两个类A和B都是这样创建的。
this.HasMany(t => t.TrafficImageQuestions)
.WithMany(t => t.TrafficImages)
.Map(m =>
{
m.ToTable("TrafficImage_Answers");
m.MapLeftKey("TrafficImagesGuid");
m.MapRightKey("TrafficImageQuestionsId");
});
现在我想将我的自定义类分配到同一个表“TrafficImage_Answers”,类offcause有左右键,然后是3.自定义属性。
(我确实将该列添加到数据库“答案”)
public class TrafficImageAnswer
{
public System.Guid TrafficImageGuid { get; set; }
public int TrafficImageQuestionId { get; set; }
public byte Answer { get; set; }
}
我这样做是因为我希望实体模型能够跟踪A和B的多对多关系,并且仍然能够查找数据库中的3.属性答案。
我尝试了什么
我尝试执行以下操作:
this.Property(t => t.TrafficImageQuestionId)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
this.Property(t => t.TrafficImageGuid)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
// Table & Column Mappings
this.ToTable("TrafficImage_Answers");
但我得知表已存在,逻辑。我需要告诉它它应该使用该表而不是尝试创建它。 (我正在使用EF 5和包管理器中的DB缓解来执行此操作)。
答案 0 :(得分:0)
不支持。如果要在联结表中为多对多关系添加其他字段,则无法将其映射为多对多关系。每个表只能映射一次,但映射表与实体和多对多关系同时映射两次。
您必须更改TrafficImageQuestions
和TrafficImages
以使用与TrafficImageAnswer
的一对多关系,而不是彼此之间的多对多关系。