2
I 다음 표 시나리오가 있습니다매핑 외래 키 등 기본 키 유창함 NHibernate에
User
- Id (PK)
- Username
Advert
- Id (PK)
- Title
AdvertPhoto
- Advert (PK) (Also a FK for Advert table)
- Image
Bid
- Advert (PK) (Also a FK for Advert table)
- User (PK) (Also a FK for User table)
- Value
좋아, 나는 아래의 코드와 이들 엔티티 매핑하기 위해 노력하고있어 :
public class AdvertMapping : BaseMapping<Advert> {
public AdvertMapping() : base("Advert") {
Id(model => model.Id).Not.Nullable().Unique().GeneratedBy.Identity();
Map(model => model.Title).Not.Nullable().Length(100).Insert().Update();
}
}
public class AdvertPhotoMapping : BaseMapping<Advert> {
public AdvertPhotoMapping() : base("AdvertPhoto") {
Id(model => model.Advert)
.Column("Id")
.GeneratedBy.Foreign("Advert");
Map(model => model.Description).Nullable();
Map(model => model.Photo).CustomSqlType("image").Not.Nullable();
References(model => model.Advert, "Advert").Not.Nullable().Not.LazyLoad();
}
}
public class BidMapping { //: BaseMapping<Bid> {
public BidMapping() : base("Bid") {
Id(model => model.Advert, "Advert").GeneratedBy.Foreign("Advert");
CompositeId()
.KeyReference(model => model.Advert, "Advert")
.KeyReference(model => model.User, "User");
Map(model => model.Value).Not.Nullable().Insert().Update();
References(model => model.Advert, "Advert").Not.Nullable().Not.LazyLoad();
}
}
확인을, I Fluent NHibernate가 AdvertPhotoMapping
클래스의 Advert 란을 참조하려고 할 때 예외가 생기고 BidMapping
CompositeId가 제대로 매핑되었는지 알 수 없습니다.
내가 가진 예외입니다 : 내가 잘못 뭐하는 거지
{"Could not determine type for: SYB.Engine.Entities.Advert, SYB.Engine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null, for columns: NHibernate.Mapping.Column(Advert)"}
? 감사합니다. 또한이 BidMapping
에서 참조 매핑을 필요가 없습니다
public class AdvertPhotoMapping : BaseMapping<Advert> {
public AdvertPhotoMapping() : base("AdvertPhoto") {
Id(model => model.Advert)
.Column("Id")
.GeneratedBy.Foreign("Advert");
Map(model => model.Description).Nullable();
Map(model => model.Photo).CustomSqlType("image").Not.Nullable();
HasOne(model => model.Advert).Constrained();
}
}
public class AdvertMapping : BaseMapping<Advert> {
public AdvertMapping() : base("Advert") {
Id(model => model.Id).Not.Nullable().Unique().GeneratedBy.Identity();
Map(model => model.Title).Not.Nullable().Length(100).Insert().Update();
HasOne(x => x.AdvertPhoto).Cascade.All();
}
}
: