저는 이것이 다소 신생아 문제라고 생각합니다. 나는 약 6 개월 정도 NHibernate/FluentNibernate를 사용 해왔고, 나는 기본에 대해 공정한 이해를 가지고 있다고 생각한다. 이제 저는 조금 넘어 가고 있습니다. 나는 이것이 문서화되어 있다고 확신하지만, 나는 구글에서 몇 시간을 보냈다. 그리고 그것을 알아 내지 못했다. "보류", "ACTIVE"및 "CLOSED"Fluent NHibernate가 일대일 테이블에 합류했습니다
public class Simple
{ public string Name { get; set;}
public string Desc { get; set; }
public string Status { get; set;}
}
상태가 실제로 값의 작은 세트 중 하나가 될 것으로 제한된다 :
나는 간단한 호출, 간단한 클래스가 있습니다. DB를 스키마, 나는 RetrofitStatus라는 간단한 읽기 전용 테이블이 있습니다
CREATE TABLE [dbo].[RetrofitStatus](
[Status] [nvarchar](10) NOT NULL,
[SortOrder] [smallint] NOT NULL,
CONSTRAINT [PK_RetrofitStatus] PRIMARY KEY CLUSTERED
(
[Status] ASC
)
을 그리고 외래 키 제약 조건이 있는지 여부 RetrofitStatus에 확인하기 위해 간단한 테이블에있다.
RetrofitStatus 테이블의 목적은 내가SELECT * from Simple s join RetrofitStatus r on r.Status=s.Status ORDER BY r.SortOrder
(SQL에서) 수행 및 예를 들어, 모든 활성 항목 첫째, 다음 ON (디스플레이 순서로 내 결과를 정렬 할 수 있도록 SORTORDER 열을 포함하는 것입니다
-HOLD 항목, CLOSED 항목, 논리적 순서로 정렬했기 때문에 알파벳순이 아니거나 쉽게 인식 할 수있는 항목이 아닙니다.)
제 질문은 FNH에서 해당 객체와 관계를 어떻게 모델링합니까? SortOrder 속성을 Simple 정의에 추가하고이를 나타내는 View를 만들 수 있지만 새로운 Simple 개체를 테이블에 삽입하려고하면 어떻게됩니까? 분명히, 나는 SortOrder 속성을 삽입하려고하지 않는다. 어떻게 든 NHib 요소를 사용해야 할 필요가 있다고 생각하지만, 다시 말해서 어디로 가야하는지, 삽입시 어떻게되는지, Fluent에서 어떻게 할 것인가에 대해서는 명확하지 않습니다.
나는 시행 착오를 시도해 볼 것이지만, 그들이하고있는 것을 알고있는 누군가 (나는 그렇지 않다)가 올바른 방향으로 나를 가리키며 시간을 절약 할 수 있다고 생각했다. . 당신의 도움을 주셔서 감사합니다.
public class Simple
{
public int Id { get; set; }
public string Name { get; set; }
public string Desc { get; set; }
public string Status { get; set;
public int SortOrder { get; set; }
}
를이 같이 매핑 할 수 있습니다 :
public SimpleMap : ClassMap<Simple>
{
Id(x => x.Id).Unique().GeneratedBy.Native();
Map(x => x.Name);
Map(x => x.Desc);
Join("RetrofitStatus", join =>
{
join.KeyColumn("Status")
.Map(x => x.Status);
join.Map(x => x.SortOrder).Not.Insert();
});
}
나는 천국