По существу название этого вопроса объясняет эссенцию, что я пытаюсь сделать, но создать надуманный пример ...Карта Узор стратегии с помощью Fluent NHibernate
У меня есть класс, назовем его сотрудников. Работник имеет IPaymentBehaviour ...
public class Employee
{
IPaymentBehaviour _paymentBehaviour;
protected internal Employee() { /* required by NH */}
public Employee(IPaymentBehaviour paymentBehaviour)
{
_paymentBehaviour = paymentBehaviour;
}
}
Это соответствует таблице базы данных следующим образом:
dbo.Employees
-> EmployeeID (первичный ключ)
-> PaymentBehaviourId (внешний ключ для поиска таблицы)
-> Field1
-> Field2
-> Field3
-> Field4
В зависимости от значения PaymentBehaviourId мне нужно «ввести» другую реализацию IPaymentBehaviour в объект Employee. В зависимости от того, какой PaymentBehaviour использовался, для создания этого поведения могут потребоваться Field1, 2, 3 или 4.
Может ли кто-нибудь сказать мне, как это будет отображаться с использованием Fluent-NHibernate?
Что значит «Field1, 2, 3 или 4, возможно, потребуется для создания этого поведения»? Что значит «создать»? Можно ли изменить дизайн базы данных? –
Я имею в виду, что это имена в таблице, и в зависимости от того, какое поведение требуется, вы должны использовать эти поля для создания экземпляра этого поведения. Можно изменить дизайн db, да, но у нас есть много возможных комбинаций, поэтому он должен быть как можно более общим. – KevinT