問題があり、何が問題を引き起こしているのか理解できません。
'journals'テーブルhttp://puu.sh/1iRItを含むredmineデータベースがあります。Visual Studio2012プラグインEntityFrameworkPowerToolsを使用して、これは次のクラスにリバースエンジニアリングされています。
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; }
}
と地図:
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");
}
}
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>}
私が理解していないのは、「Issue_id」がどこから来ているのか、このクエリがEntityCommandExecutionExceptionを引き起こしていることです(内部例外:{"不明な列'Extent1.Issue_id' in'フィールドリスト'"})
Issue_id列を手動で追加すると、この問題は修正されます(この修正を元に戻す必要があり、データベース構造に変更を加える必要はありません)
この「Issue_id」がどこから来たのかわかりませんが、これを見つける方法を誰かが知っていますか?
乾杯、リック