각 고객이 자신의 계정에 사용자 정의 된 등록 양식을 정의 할 수있는 기능을 추가하는 기능을 개발 중입니다. 객체 중 하나에 대한 Fluent NHibernate 매핑을 생성합니다.두 테이블의 필드를 매핑하여 단일 엔터티 만들기
[RegistrationField]
과 [AccountRegistrationField]
의 두 테이블이 있습니다. [RegistrationField]
에는 선택할 수있는 모든 필드의 정적 목록과 필드 렌더링 방법에 대한 정보 (예 : 텍스트 상자, 선택 상자 또는 확인란)가 들어 있습니다. [AccountRegistrationField]
에는 각 계정에 대해 선택된 필드와 필드에 대한 계정 별 정보가 들어 있습니다. 이 테이블은 필드가 표시되어야하는 순서, 선택되어있는 경우 필드의 기본값 및 필드에 대해 표시되어야하는 레이블을 저장합니다.
두 테이블의 기본 구조는 다음과 같습니다 내가하고 싶은 무엇
[RegistrationField]
fieldID (PK, int, not null)
fieldName (varchar(50), not null)
fieldType (varchar(50), not null)
htmlID (varchar(50), not null)
[AccountRegistrationField]
ID (PK, int, not null)
accountID (FK, int, not null)
fieldID (FK, int, not null)
isRequired (bit, not null)
priority (int, not null)
label (varchar(50), not null)
defaultValue (varchar(50), not null)
는 [AccountRegistrationField]
의 데이터를 표현하는 객체를 생성하지만 그 또한 [RegistrationField]
의 필드의 몇 가지가 포함되어 있습니다. 개체는 다음과 같이 보일 것입니다 :
SELECT ar.id
,ar.accountID
,ar.defaultValue
,ar.fieldID
,rf.htmlID
,ar.isRequired
,ar.label
,rf.fieldType
FROM AccountRegistrationFields ar
INNER JOIN RegistrationFields rf ON rf.fieldID = ar.fieldID
WHERE ar.accountID = @AccountID
ORDER BY ar.priority
하지만 난 나를주고 유창함 자 NHibernate를 사용하여이지도하는 방법을 정말 잘 모르겠어요 :
public class UserRegistrationField
{
public virtual int ID { get; set; } //from AccountRegistrationField
public virtual int AccountID { get; set; } //from AccountRegistrationField
public virtual string DefaultValue { get; set; } //from AccountRegistrationField
public virtual int FieldID { get; set; } //from AccountRegistrationField
public virtual string HtmlID { get; set; } //from RegistrationField
public virtual bool IsRequired { get; set; } //from AccountRegistrationField
public virtual string Label { get; set; } //from AccountRegistrationField
public virtual int Priority{ get; set; } //from AccountRegistrationField
public virtual string FieldType { get; set; } //from RegistrationField
}
SQL 쿼리 내가 원하는 걸주는 것은 같은 결과.
[RegistrationField]
에서 필요한 값을 저장하지 않고 어떻게 이런 일이 발생할 수 있는지 아이디어가 [AccountRegistrationField]
에 있습니까?
Fluent에서 올바른 구문을 찾기 위해 약간 검색해야했지만 Join 메서드가 작동했습니다. – Hamman359
@ Hamman359 : 제공하려면 신경을 써야합니까? –