Как сопоставить таблицу поиска с enum?

Предположим, у меня есть следующие 2 таблицы SQL:

Foo

Column        DataType
---------------------------
Title         NVARCHAR(20)
Body          NVARCHAR(MAX)
FooTypeId     TINYINT

FooType

Column        DataType
--------------------------
FooTypeId     TINYINT
Name          NVARCHAR(10)

Теперь я использую Entity Framework 4.0 с пользовательским контекстом данных и реализацию POCO.

Как Должен ли я отобразить это на конструкторе и на моих POCO?

Должен ли я создать свойство POCO (типа байт, который я предполагаю) с именем «FooTypeId», тогда я выставлю ДРУГОЕ свойство моего типа enum?

Т.е.

public class Foo
{
    public byte FooTypeId { get; set; } // for ORM - do i need this??
    public FooType FooType // for most querying operations
    {
         get
         {
            return (FooType)this.FooTypeId;
         }
         set
         {
            this.FooTypeId = (int)value;
         }
    }
}

public enum FooType
{
    Blah = 1,
    Foo = 2,
    Bar = 3
}

В настоящий момент у меня даже нет таблицы FooType на моем конструкторе, так как я решил, что могу попытаться «выразить» это как перечисление из фактического FooTypeId в свойстве Foo. Или я должен создать «Навигационное свойство» на картографическом устройстве, а затем определить это в моем POCO?

Я читал темы из нескольких лет назад (EF1), говоря: «Перечисления не поддерживаются в EF», это так? все еще дело с EF4? Если да, то, что я делаю правильно?

Я немного растерялся, некоторые рекомендации будут с благодарностью!

9
задан abatishchev 20 April 2011 в 07:28
поделиться