C# WCF数据服务使用基于EF的存储库中的数据
我们有一个基于EF4/POCO的现有存储库,并且运行良好。我们希望使用WCF数据服务添加服务层,并寻求一些最佳实践建议 到目前为止,我们已经开发了一个具有IQueryable属性的类,getter触发存储库的“get all users”方法。到目前为止,问题有两个方面: 1) 它要求我们修饰poco对象的ID字段,以告诉数据服务ID是哪个字段。这现在意味着我们的poco对象不是“纯”的 2) 它无法找出对象之间的关系(我想这是显而易见的) 我现在已经停止了这种方法,我想也许我们应该从存储库中公开OBjectContext,并使用EF的更多“自动”功能C# WCF数据服务使用基于EF的存储库中的数据,c#,wcf,entity-framework,repository,odata,C#,Wcf,Entity Framework,Repository,Odata,我们有一个基于EF4/POCO的现有存储库,并且运行良好。我们希望使用WCF数据服务添加服务层,并寻求一些最佳实践建议 到目前为止,我们已经开发了一个具有IQueryable属性的类,getter触发存储库的“get all users”方法。到目前为止,问题有两个方面: 1) 它要求我们修饰poco对象的ID字段,以告诉数据服务ID是哪个字段。这现在意味着我们的poco对象不是“纯”的 2) 它无法找出对象之间的关系(我想这是显而易见的) 我现在已经停止了这种方法,我想也许我们应该从存储库中公
有没有人得到过将存储库模式与WCF数据服务结合使用的建议或示例?我想这是一个务实的问题。装饰POCO会破坏其他东西吗?如果不是,也许这是最好的方法
WCF数据服务和oData是非常新的,我也一直在寻找指导,它似乎有点单薄。您能否进一步扩展您想要公开的内容,以及谁将使用它 到目前为止,我在项目中看到的问题
- 拥有MyRepository:Objectcontext和 MyDataService:DataService拆分逻辑,因此 创建助手。我想我们可能已经继承了存储库了-(在我输入这个时,我确实想到了这一点!)
- 查询和更改拦截器是您的朋友,但是 应委托给助手(或基类)以确保 干的ie-如果您的存储库已经存在 拥有GetAllUsers,并做到了这一点 myservice.svc/Users无法处理, 您可能需要实现一个查询 拦截器来进行过滤- 同样,DRY指的是一个助手(或基本方法),它 存储库和拦截器可以 使用李>
- asp.net兼容性允许您 很好地接入到身份验证/ 授权-在查询中 拦截器,这是一个很好的方法 确保只允许您查看 你可以看到的东西
总的来说,我真的很喜欢它,它是一种公开API的超快速方式,如果您没有繁重的业务逻辑,它工作得很好。没有,但我还发现poco需要使用IQueryable定义他们的关系,而不是T4生成的ICollection;你认为这会有很大的影响吗?+1个好问题,这方面有什么新的吗?