扩展默认实体框架模型类以包括自定义类

时间:2011-03-14 09:27:50

标签: entity-framework-4 wcf-data-services

我有一个实体模型,它从我的数据库中添加了一些表格。我想要包含一个自定义类,它将充当数据模型并返回自定义数据。这是我想要做的:

// My custom data model
public class DataModel
{
    var dbContext = new ODataDemoEntities();

    Employees = from e in dbContext.Employee
                select new EmployeeModel
                {
                    ID = e.EmployeeID,
                    FirstName = e.FirstName,
                    LastName = e.LastName
                };

    public IQueryable<EmployeeModel> Employees { get; private set; }
}

// My custom class
[DataServiceKey("ID")]
public class EmployeeModel
{
    /// <summary>ID of the employee.</summary>
    public int ID { get; set; }

    /// <summary>First name of the employee.</summary>
    public string FirstName { get; set; }

    /// <summary>Last name of the employee.</summary>
    public string LastName { get; set; }
}

// My WCF Data Service Code
public class EmployeeDataService : DataService<DataModel>
{
    // This method is called only once to initialize service-wide policies.
    public static void InitializeService(DataServiceConfiguration config)
    {
        config.SetEntitySetAccessRule("Employees", EntitySetRights.AllRead);
        config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
    }
}

但是我想在我现有的实体数据模型类中包含这个Employees类,因此我不是使用不同的数据模型创建单独的服务,而是扩展现有的数据模型以包括我的自定义类(EmployeesModel)。

1 个答案:

答案 0 :(得分:1)

为什么要在现有实体上公开自定义视图?客户端无论如何都可以这样做,并使用投影以他们想要的方式自定义它们。客户端的查询看起来就像上面写的那样初始化Employees属性。

目前,没有办法做到这一点。我们正在研究如何确保在下一版本中实现。虽然没有承诺,但我们已经多次询问过其中一项事项,并且在我们的专业列表中有很高的要求。

使用此投票网站对此功能进行投票:http://blogs.msdn.com/b/astoriateam/archive/2010/09/10/what-do-you-want-to-see-added-changed-in-wcf-data-services.aspx

由于 PRATIK