我在WCF中使用Entity Framework有一个问题。我正在使用带有EF DbContext的.NET 4.5。
以下是我在WCF中使用EF所要做的事情。可能是他们不够或有些不是必需的。
我遇到的问题是我找不到使用EF与WCF执行的步骤的一个很好的例子。我只能看到点点滴滴。可能是我迟到了WCF EF世界因此找不到。
不确定我是否可以使用代理WCF。我还没有完全理解代理的优势。
我还阅读了使用DTO作为EF和服务之间的层的建议。这需要映射器到位。我不知道我是否需要马上使用它。但是很明显,它有助于隐藏业务对象中显示的任何不必要的数据库列。例如,我们不会在客户端中显示的审计列,例如由我们创建,更新等。
我没有选择使用DataServices,因为我丢失了从WCF获得的其他绑定选项。我不知道在考虑到需要/支持其他绑定机制的客户端的未来需求时,丢失DataServices的简单性是否是一件好事。
感谢任何建议。
其他更新
我确实在MSDN http://msdn.microsoft.com/en-us/library/ee705457(v=vs.100).aspx中找到了这个。一些链接指向预发布文档。但是这为我提供了一些使用EF和WCF的想法。
本文介绍如何在WCF中使用代理,更改POCO的跟踪。这对我来说是一个好的开始。如果有人有更多的建议,请提供您的想法。
更新2 * N-Tier的另一个优秀链接 *
http://msdn.microsoft.com/en-us/magazine/dd882522.aspx
我很高兴我花的时间真的教育了我!
答案 0 :(得分:0)
我在这里以及其他论坛上阅读了大量阅读后,我继续使用EF和WCF。
我按照前面的步骤。我能够看到使用DTO的优势。这实际上允许您隐藏不需要向客户端或其他服务公开的字段。但由于时间限制,我暂时停止引入DTO。
我使用了context.Attach,context.Add和context.Entry。
我还做了一个小型原型来使用WCF数据服务。这是一个非常快节奏的发展。由于学习其功能的时间限制,我现在暂时停止使用WCF数据服务。