使用基于泛型的角色模式与EntityFramework 4

时间:2011-08-20 11:14:42

标签: entity-framework generics role

也许我还没有完全了解模特。我认为,这可能是错误的,EF框架可以映射任何类型的类。所以我确实提供了具有不同接口的类,使用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 个答案:

答案 0 :(得分:3)

如果是实体框架,您必须提供确切的类型。仅当映射了整个继承树时,才支持基类。根本不支持接口和泛型类型。

这意味着可重用且灵活的架构不能使用EF。