EntityFramework尝试选择一个不存在的列?

Wub*_*tor 9 entity-framework redmine visual-studio-2012

我有一个问题,我只是无法弄清楚导致问题的原因.

我有一个redmine数据库,带有'journals'表http://puu.sh/1iRIt.使用Visual Studio 2012插件EntityFramework Power Tools,已将其反向设计到以下类中:

public class Journal
    {
        public int id { get; set; }
        public int journalized_id { get; set; }
        public string journalized_type { get; set; }
        public int user_id { get; set; }
        public string notes { get; set; }
        public System.DateTime created_on { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

和地图:

public class JournalMap : EntityTypeConfiguration<Journal>
    {
        public JournalMap()
        {
            // Primary Key
            this.HasKey(t => t.id);

            // Properties
            this.Property(t => t.journalized_type)
                .IsRequired()
                .HasMaxLength(30);

            this.Property(t => t.notes)
                .HasMaxLength(65535);

            // Table & Column Mappings
            this.ToTable("journals", "redmine");
            this.Property(t => t.id).HasColumnName("id");
            this.Property(t => t.journalized_id).HasColumnName("journalized_id");
            this.Property(t => t.journalized_type).HasColumnName("journalized_type");
            this.Property(t => t.user_id).HasColumnName("user_id");
            this.Property(t => t.notes).HasColumnName("notes");
            this.Property(t => t.created_on).HasColumnName("created_on");
        }
    }
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试使用LINQ在期刊数据库上执行选择时:

return context.Journals.Where(c => c.journalized_id == task.id);

I see that the following query is created:

-       returnValue {SELECT
`Extent1`.`id`, 
`Extent1`.`journalized_id`, 
`Extent1`.`journalized_type`, 
`Extent1`.`user_id`, 
`Extent1`.`notes`, 
`Extent1`.`created_on`, 
`Extent1`.`Issue_id`
FROM `journals` AS `Extent1`
 WHERE `Extent1`.`journalized_id` = @p__linq__0}    


 System.Linq.IQueryable<Synchronisation.Domain.Entities.Redmine.Journal> {System.Data.Entity.Infrastructure.DbQuery<Synchronisation.Domain.Entities.Redmine.Journal>}
Run Code Online (Sandbox Code Playgroud)

我不明白的是"Issue_id"来自何处,此查询导致EntityCommandExecutionException(内部异常:{"'字段列表'中的未知列'Extent1.Issue_id'}}}

当我手动添加Issue_id列时,此问题已得到修复(必须还原此修复程序,不会对数据库结构进行任何更改)

我不知道这个"Issue_id"来自何处,是否有人知道如何找到它?

干杯,瑞克

Wub*_*tor 4

删除了期刊和问题之间的自定义引用(我已将期刊列表添加到我的问题类中)

public List<Journal> Journals { get; set; }
Run Code Online (Sandbox Code Playgroud)

删除此列表后,EntityFramework 可以再次正确地计算出查询。