我想构建一个WCF数据服务,该服务应该用于数据库后端的CRUD操作。为了识别数据库中对象的相关记录,我必须知道它的主键。我在数据库模式中使用代理键。
将代理键传递给调用者是否是一种好习惯,以便在后续调用中识别数据库中的记录? (调用者检索对象,调用者修改对象,调用者调用WCF更新方法)我知道代理键通常不应该在数据库之外使用。如果这不是一个好主意,我还有其他选择吗?
任何建议都非常有用。
答案 0 :(得分:1)
是的,您的解决方案已经足够了。这是将CLR对象映射到持久实体的最简单方法。此外,您的服务的消费者可能会发现这个unqiue标识符在编程UI时有用,用于记录等目的。
我会毫不犹豫地走这条路。
答案 1 :(得分:0)
我认为这完全取决于您所谈论的数据类型。如果您正在谈论纯资源驱动的数据,那么公开代理键就没有问题。但是,如果这是业务数据,则只应公开业务键。它允许不相交的系统以通用方式进行通信。