CompositeIdを使用してレガシーシステムにマップしようとしています。ソースデータベースには複合主キーがあるため、通常のthis.Idマッピングを使用できません。
これが私の試みです:
public PriorityListPartMap()
{
this.Schema("EngSchedule");
this.Table("vPriorityListPart");
this.CompositeId().KeyProperty(x => x.AssemblyPartNumber).KeyProperty(x => x.PartNumber);
this.Map(x => x.CurrentDueDate);
this.Map(x => x.OrderLine);
this.Map(x => x.OrderNumber);
this.Map(x => x.PartDescription);
this.Map(x => x.ProductCode);
this.Map(x => x.Revision);
}
セッションファクトリを作成しようとすると、このマッピングによりエラーが発生します:マッピングドキュメントをコンパイルできませんでした:(XmlDocument)
CompositeIdマッピングを削除して、次のように置き換えてみました。
this.Id(x => x.AssemblyPartNumber).GeneratedBy.Assigned();
エラーはそのマッピングで解消されますが、AssemblyPartNumberが一意ではないため、実際には使用できません。
複合主キーを使用してテーブルにマップする別の方法はありますか?
ありがとう、
マシューマクファーランド