Представьте себе такой класс:
public class MyEntity : Entity
{
public virtual States States { get; set; }
}
[Flags]
public enum States
{
None,
State1 = 1,
State2 = 2,
State3 = 4,
State4 = 8
}
Я хочу сопоставить это с этой таблицей:
TABLE MY_ENTITY
ID: PK
STATES_ID : FK to MY_ENTITY_STATES
TABLE MY_ENTITY_STATES
ID: PK
IS_STATE1_SET (bit)
IS_STATE2_SET (bit)
IS_STATE3_SET (bit)
IS_STATE4_SET (bit)
Возможно ли это?
Это устаревший сценарий, я не могу изменить базу данных.
В соответствии с запросом, вот некоторые примеры данных:
Таблица MY_ENTITY
ID | STATES_ID
---+----------
14 | 35
Таблица MY_ENTITY_STATES
ID | IS_STATE1_SET | IS_STATE2_SET | IS_STATE3_SET | IS_STATE4_SET
---+---------------+---------------+---------------+--------------
35 | 0 | 1 | 0 | 1
Это должно привести к значению States.State2 | States.State4
в свойстве States
в экземпляре MyEntity
с идентификатором 14.