필자는 내 테이블에 기존 테이블이 있고 기존 데이터와 함께 작동 할 도메인을 만들어야합니다.FluentNHibernate를 정규화하지 않고 기존 테이블에 매핑
다음Application
'ORDERSCANNER'
ApplicationFunction
'ORDERSCANNER','SCAN'
'ORDERSCANNER','READ'
'ORDERSCANNER','PRINT'
FunctionalGroup
'ADMIN','RUS','ORDERSCANNER','SCAN'
'ADMIN','RUS','ORDERSCANNER','PRINT'
'ADMIN','JAP','ORDERSCANNER','SCAN'
'ADMIN','JAP','ORDERSCANNER','PRINT'
'OPERATOR','RUS','ORDERSCANNER','SCAN'
'OPERATOR','JAP','ORDERSCANNER','SCAN'
User
'IVANOV','RUS','OPERATOR'
'PETROV','RUS','OPERATOR'
'PETROV','JAP','OPERATOR'
'SIDOROV','RUS','ADMIN - he is an ADMIN group but only for RUS. He is not able to scan for JAP
내가의 사용자를 살펴 보자 내 도메인
public class Application // root
{
private readonly List<ApplicationFunction> _functions;
public string ApplicationId { get; set; }
public Application()
{
_functions = new List<ApplicationFunction>();
}
public void AddFunction(string newFunction)
{
var function = new ApplicationFunction(this, newFunction);
_functions.Add(function);
}
}
public class ApplicationFunction // value object
{
public Application Application { get; private set; }
public string FunctionId { get; private set; }
public ApplicationFunction(Application application, string functionId)
{
if (application == null) throw new ArgumentNullException("application");
if (functionId == null) throw new ArgumentNullException("functionId");
Application = application;
FunctionId = functionId;
}
}
public class FunctionalGroup // root
{
private readonly List<ApplicationFunction> _functions;
public string GroupId { get; set; }
public string MarketingPlanCode { get; set; }
public IEnumerable<ApplicationFunction> Functions { get { return _functions; } }
public FunctionalGroup()
{
_functions = new List<ApplicationFunction>();
}
public void AddFunction(ApplicationFunction applicationFunction)
{
_functions.Add(applicationFunction);
}
}
public class User // root
{
private readonly List<FunctionalGroup> _groups;
public string UserId { get; set; }
public IEnumerable<FunctionalGroup> Groups { get { return _groups; } }
public User()
{
_groups = new List<FunctionalGroup>();
}
public void AddToGroup(FunctionalGroup functionalGroup)
{
_groups.Add(functionalGroup);
}
}
를 참조하는 방법입니다
나는 다음 테이블 구조를 가지고있다.
public class UserMap : ClassMap<User>
{
public UserMap()
{
Id(x => x.UserId).Column("USER_ID");
HasMany(x => x.Groups).Cascade.All();
}
}
필자는 FunctionalGroup의 내 컬렉션에서 매핑 할 추가 데이터가 필요합니다. 이는 MarketingPlanCode입니다. 내 User 클래스에 MarketingPlanCode 속성을 추가하면 컬렉션 당 하나의 속성 만 가져옵니다. 하지만 그 컬렉션에있는 아이템마다 속성이 필요합니다.
글쎄, 내가 필요한 것을 설명 할 수 없다면, 내 테이블의 예제 데이터를 살펴 보라. 그것을 매핑 할 방법이 있습니까?
do 함수는 각 함수가 다른 코드를 실행하는 논리를 나타 냅니까? 어떤 종류의 전략 패턴? – Firo