Использование универсального шаблона ролей с EntityFramework 4 - PullRequest
1 голос
/ 20 августа 2011

Может быть, я не совсем понял все о моделях.Я подумал, что, возможно, это неправильно, EF Framework может отображать любой класс.Поэтому я предоставлял классы с различными интерфейсами, с ToString() методами и т. Д.

Я думал о многоразовой / гибкой структуре классов для какой-то общественной организации.

Например,есть следующие классы

[Serializable]
public abstract class AbstractRole
{
    public String Title { get; set; }

    public abstract void ExecuteRole();
    public abstract Decimal GetSalary();

    // ToString(...) implementations and so on
}

[Serializable]
public class Employee<T> : IComparable<Employee<T>>, IFormattable where T : AbstractRole
{
    private Person person;        
    public T Role { get; set; }

    // interfaces implementations...       
}

Так что все, что я хотел, это получить гибкость, чтобы своевременно менять роль сотрудника, а не привязываться к его экземпляру (избегать наследования).генерики не поддерживаются EF.

Что мне делать?

1 Ответ

3 голосов
/ 20 августа 2011

В случае структуры объекта вы должны указать точный тип. Базовые классы поддерживаются только в том случае, если отображается все дерево наследования. Интерфейсы и универсальные типы вообще не поддерживаются.

Это означает, что многоразовая и гибкая архитектура - это не то, что может использовать EF.

...