現在、エンティティ フレームワーク 4.3 を使用してレガシー Oracle データベースをマップしています。すべてのデータ型は Oracle のデータ型と互換性があるように見えますが、常にTargetInvocationException
の内部例外をスローしInvalidCastException
ます。問題のテーブルは複合キーを使用していますが、これが例外を受け取っている理由に直接関係しているかどうかはわかりません。私の現在のコードは次のとおりです
構成クラス:
class NoteConfig : EntityTypeConfiguration<Note>
{
public NoteConfig()
{
Property(m => m.DateChanged).HasColumnName("DATE_CHANGED");
Property(m => m.ObjectId).HasColumnName("OBJECT_ID");
Property(m => m.ObjectType).HasColumnName("OBJECT_TYPE");
Property(m => m.Subject).HasColumnName("SUBJECT");
Property(m => m.Text).HasColumnName("TEXT");
Property(m => m.EnteredBy).HasColumnName("ENTERED_BY");
Property(m => m.LineNo).HasColumnName("LINE_NO");
Property(m => m.LanguageId).HasColumnName("LANGUAGE_ID");
//composite key mapping
HasKey(m =>
new {
m.ObjectType,
m.ObjectId,
m.LanguageId,
m.Subject,
m.LineNo,
});
ToTable("TSW_INT_NOTES", Settings.Default.DbSchema);
}
}
モデル クラス:
public class Note
{
// comp key (languageid, objectid, lineno, object type, subject
public string Subject { get; set; }
public string Text { get; set; }
public string ObjectType { get; set; }
public string ObjectId { get; set; }
public DateTime DateChanged { get; set; }
public string EnteredBy { get; set; }
public string LineNo { get; set; }
public int LanguageId { get; set; }
}
テーブル レイアウト:
ブレークポイント出力: