DataServiceKey 与 DataKeyProperty 与 DataServiceEntity

发布于 2024-10-17 13:04:17 字数 30 浏览 3 评论 0原文

谁能帮助我理解上述内容?不明白什么时候用什么?

Can anyone help me in understanding the above? Don't understand when to use to what?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

在风中等你 2024-10-24 13:04:17

WCF 数据服务根本不使用 DataKeyProperty,它是不相关的(请注意,它位于不同的命名空间中)。

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

DataServiceKey 由客户端和服务器库使用。它指定关键属性的名称。任何具有此属性的类都被视为实体类型。这是一直使用的属性。也是通过VS中的code-gen和命令行工具生成的。

简而言之,如果您定义一个应该表示实体的类(无论它是在服务器上还是客户端上),您应该在其上添加 DataServiceKey 属性,并在该属性的构造函数中列出所有关键属性。

(可以将类定义为没有该属性的实体,但是运行时会使用启发式方法来识别实体类,因此除非您确实需要 100% POCO,否则最好使用该属性。)

DataKeyProperty is not used by WCF Data Services at all, it's unrelated (Note that it's in a different namespace).

DataServiceEntity is only used in WCF Data Services client library. Any class with this attribute will be considered an entity type. This might be useful if you want to materialize results of a query into a client-side class which doesn't have the key properties on it.

DataServiceKey is used both by client and server libraries. It specifies the names of key properties. Any class with this attribute is considered an entity type. This is the attribute which is used all the time. It is also generated by the code-gen in VS and the command line tool.

In short, if you define a class which should represent an entity (regardless if it's on the server or client), you should add the DataServiceKey attribute on it and list all the key properties in the attribute's constructor.

(It is possible to define classes as entities without the attribute, but then the runtime uses heuristics to recognize entity classes, so unless you really need 100% POCO it's better to use the attribute.)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文