2011-02-15 131 views

回答

2

DataKeyProperty没有被WCF数据服务使用,它是无关的(注意它在不同的命名空间中)。

DataServiceEntity仅用于WCF数据服务客户端库。任何具有此属性的类都将被视为实体类型。如果您希望将查询结果实现到客户端类,而客户端类没有关键属性,这可能很有用。

DataServiceKey由客户端和服务器库使用。它指定了关键属性的名称。任何具有此属性的类都被视为实体类型。这是一直使用的属性。它也是由VS中的code-gen和命令行工具生成的。简而言之,如果你定义了一个应该代表一个实体的类(不管它是否在服务器或客户端上),你应该在其上添加DataServiceKey属性并列出属性构造函数中的所有关键属性。

(这是可能的类定义为实体没有属性,但随后的运行时使用启发式识别实体类,所以除非你真的需要100%POCO它更好地使用属性。)