任何人都可以帮助我理解上述内容吗?不明白什么时候用到什么?
答案 0 :(得分:2)
WCF数据服务根本不使用DataKeyProperty,它是无关的(注意它位于不同的命名空间中)。
DataServiceEntity仅用于WCF数据服务客户端库。具有此属性的任何类都将被视为实体类型。如果要将查询结果具体化为没有关键属性的客户端类,这可能很有用。
客户端和服务器库都使用DataServiceKey。它指定了关键属性的名称。具有此属性的任何类都被视为实体类型。这是一直使用的属性。它也是由VS中的代码生成器和命令行工具生成的。
简而言之,如果您定义一个应该表示实体的类(无论它是在服务器还是客户端上),您应该在其上添加DataServiceKey属性并列出属性构造函数中的所有键属性。
(可以将类定义为没有属性的实体,但是运行时使用启发式来识别实体类,因此除非您真的需要100%POCO,否则最好使用该属性。)