がマッピングされていません。流暢NHibernateは - にValidationExceptionエンティティは、IdはFNHとscemaを生成中に次のエラーを取得
[DataContract]
public abstract class Template
{
[DataMember]
public virtual int? Id { get; set; }
[DataMember]
public virtual string Title { get; set; }
[DataMember]
public virtual TemplateStatusInfo TemplateStatus { get; set; }
}
[DataContract]
public class TemplateStatusInfo
{
[DataMember]
public virtual List<string> ValidCodes { get; set; }
[DataMember]
public virtual string TemplateError { get; set; }
}
マッピング:
public class TemplateMap : ClassMap<Template>
{
public const string TableName = "Template";
public TemplateMap()
{
Table(TableName);
Id(x => x.Id).UnsavedValue(null).GeneratedBy.Native();
Map(x => x.Title).Not.Nullable().Length(150);
DiscriminateSubClassesOnColumn("type");
}
}
public class TemplateStatusInfoMap : ClassMap<TemplateStatusInfo>
{
public TemplateStatusInfoMap()
{
Table(TemplateMap.TableName);
HasMany(x => x.ValidCodes).Table("TemplateValidCodes").KeyColumn("Id").Element("CodeName").AsSet().Cascade.AllDeleteOrphan();
Map(x => x.TemplateError).Length(1000);
}
}
以下のように定義
ValidationException: The Entity 'TemplateStatusInfo' dows not have an Id mapped.
クラスのマッピングを
2つのテーブル "テンプレート"(列にId、Title、TemplateError)と子テーブル "TemplateValidCodes"(列Id、CodeName)。
誰でもここでTemplateStatusInfoのIDをマップすることができます(本質的にTemplate.Idになります)。