如何将我的PICO类与我的数据库中的特定表与Entity Framework 5相关联

时间:2012-10-01 01:31:00

标签: entity-framework

我的数据库(多对多表)中有一个表,两个类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缓解来执行此操作)。

1 个答案:

答案 0 :(得分:0)

不支持。如果要在联结表中为多对多关系添加其他字段,则无法将其映射为多对多关系。每个表只能映射一次,但映射表与实体和多对多关系同时映射两次。

您必须更改TrafficImageQuestionsTrafficImages以使用与TrafficImageAnswer的一对多关系,而不是彼此之间的多对多关系。