entity-framework - 是否有等效于 DbContext.Set(type) 的 DataServiceContext.Set(type)

标签 entity-framework wcf-data-services entity-framework-5 dbcontext wcf-data-services-client

我最近创建了一个围绕 Entity Framework 的 DbContext 构建的非常强大的 API。我正在使用大量元数据编程并利用这样一个事实,即我可以通过调用 DbContext.Set(typeof(Customer)) 来获取我的数据。只是,在我的 API 中,我在编译时不知道我将传递给 Set 方法的类型。这与 EntityFramework 一起工作得很好,我想添加另一个层抽象并让它与 EntityFramework 或 DataServiceContext 一起工作。所以,我真的有两个问题。

首先,更具体地说,是否有等效于 DbContext.Set(type) 方法的 DataServiceContext(即 odata/wcf)?

其次,更一般地说,是否有比较 DbContext 和 DataServiceContext 提供的 API 的好资源?

最佳答案

EntityFramework 和 DataServices 客户端 API 不应混合使用。即使它们看起来相似,它们也不是。 DbSet 表示实体集。我认为在 DataServiceContext 中没有关于实体集的强有力的契约。相反,实体集的名称作为字符串传递给需要知道这一点的方法(例如查看 DataServiceContext.AddObject()DataServiceContext.CreateQuery() 方法)。从某种意义上说,它使动态编程 DataServiceContext 变得更加容易。另一方面,您仍然需要知道管道的另一侧(即服务器)是什么。如上所述,WCF 数据服务和 EntityFramework 是不同的技术(即使它们可以一起工作),它们的 API 虽然相似,但用于不同的目的。因此,比较它们就像比较苹果和橙子一样。

关于entity-framework - 是否有等效于 DbContext.Set(type) 的 DataServiceContext.Set(type),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14419406/

相关文章:

c# - 如何在 Entity Framework 的列中选择不同的值?

c# - 以 JSON 形式返回 Entity Framework 结果

sql - 如何在 Entity Framework 中执行原始SQL查询?

c# - Entity Framework 6 迁移 - 生成 "SchemaName"."TableName"

c# - 使用没有魔术字符串的 ViewModels 的 MVC 下拉列表

odata - WCF 数据服务(ODATA 服务)是否可测试?我们可以为WCF数据服务编写单元测试吗

c# - EntityState.Deleted 不起作用,Remove(entity) 起作用吗?

c# - ObjectContext.Translate - 使用不同的属性名称

asp.net - 我是否应该对映射表使用复合键,该复合键也用于外键?

c# - WCF 数据服务 : MaxProtocolVersion set at v2 despite Service set at v3. 在 OfType() 上结束抛出错误