DataServiceKey против DataKeyProperty против DataServiceEntity - PullRequest
0 голосов
/ 15 февраля 2011

Может кто-нибудь помочь мне в понимании выше?Не понимаю, когда использовать к чему?

1 Ответ

2 голосов
/ 15 февраля 2011

DataKeyProperty вообще не используется службами данных WCF, он не связан (обратите внимание, что он находится в другом пространстве имен).

DataServiceEntity используется только в клиентской библиотеке служб данных WCF.Любой класс с этим атрибутом будет считаться типом сущности.Это может быть полезно, если вы хотите материализовать результаты запроса в класс на стороне клиента, у которого нет ключевых свойств.

DataServiceKey используется как клиентскими, так и серверными библиотеками.Указывает имена ключевых свойств.Любой класс с этим атрибутом считается типом сущности.Это атрибут, который используется все время.Он также генерируется генератором кода в VS и инструментом командной строки.

Короче говоря, если вы определяете класс, который должен представлять сущность (независимо от того, находится ли он на сервере или клиенте), вы должны добавитьатрибут DataServiceKey и перечислите все ключевые свойства в конструкторе атрибута.

(Можно определить классы как сущности без атрибута, но тогда среда выполнения использует эвристику для распознавания классов сущностей, так что если вы действительно ненужно 100% POCO, лучше использовать атрибут.)

...