Order Class を 2 つの同一のサブクラスにマップしようとすると、次のエラーが発生します
Could not find a getter for property 'RatingCriteria1' in class 'ORM.Entities.Enquiry.EnquiryOrder'
基本的に、データベースには多くの列を持つテーブルが 1 つあります。12 列は評価関連です
BuyerRatingCriteria1、BuyerRatingCriteria2、BuyerRatingCriteria3、BuyerRatingCriteria4、BuyerRatingCriteria5、BuyerRatingCriteriaComments
と
SupplierRatingCriteria1, SupplierRatingCriteria2, SupplierRatingCriteria3, SupplierRatingCriteria4, SupplierRatingCriteria5, SupplierRatingCriteriaComments
これらを の 2 つのサブクラスに単純化したいので、
Order.SupplierRating.Criteria1
と
Order.BuyerRating.Criteria1
例えば
public class EnquiryOrder : Entity
{
public virtual int Id { get; set; }
public virtual DateTime DateOrdered { get; set; }
public virtual string PONumber { get; set; }
public virtual string SONumber { get; set; }
public virtual Rating SupplierRatings { get; set; }
public virtual Rating BuyerRatings { get; set; }
}
public class Rating : Entity
{
public virtual int RatingCriteria1 { get; set; }
public virtual int RatingCriteria2 { get; set; }
public virtual int RatingCriteria3 { get; set; }
public virtual int RatingCriteria4 { get; set; }
public virtual int RatingCriteria5 { get; set; }
public virtual string RatingCriteriaComment { get; set; }
}
これくらい簡単だと思っていたマッピング
public EnquiryOrderMapping()
{
Id(x => x.Id).Column("EnquiryOrderId");
Map(x => x.DateOrdered);
Map(x => x.PONumber).Nullable();
Map(x => x.SONumber).Nullable();
Map(x => x.BuyerRatings.RatingCriteria1).Column("EnquiryBuyerRatingsRatingCriteria1").Nullable();
Map(x => x.BuyerRatings.RatingCriteria2).Column("EnquiryBuyerRatingsRatingCriteria2").Nullable();
Map(x => x.BuyerRatings.RatingCriteria3).Column("EnquiryBuyerRatingsRatingCriteria3").Nullable();
Map(x => x.BuyerRatings.RatingCriteria4).Column("EnquiryBuyerRatingsRatingCriteria4").Nullable();
Map(x => x.BuyerRatings.RatingCriteria5).Column("EnquiryBuyerRatingsRatingCriteria5").Nullable();
Map(x => x.BuyerRatings.RatingCriteriaComment).Column("EnquiryBuyerRatingsRatingCriteriaComment").Nullable();
}
いいえ、解決できるようにできる限り単純化しようとしていたため、ここではサプライヤー側のマッピングを省略しました。
なぜ問題があるのか わかりません...「RatingCriteria1」ではなく、どの列(フルネーム)を見るかを伝えました
変数 RatingCriteria1 がある場合と同様に、ゲッターとセッターがあります!!!
非常に奇妙です...このようなサブクラスをマッピングするときに何かしなければならないことがありますか?