db4o в .NET: свойства или поля? - PullRequest
0 голосов
/ 11 марта 2011

Я начинаю с db4o в .NET 4.0.Должен ли я использовать поля или свойства для постоянных объектов?

Я понимаю, что для использования атрибута [Indexed] для уникальных идентификаторов мне нужно использовать поле.Как реализовать соответствующее свойство ID без дублирования данных в моей базе данных?

1 Ответ

4 голосов
/ 12 марта 2011

Используйте обычные свойства, как если бы вы использовали любой другой объект. Держите ваши поля приватными и получайте к ним доступ через свойства и методы. Это делает его более гибким, например, для переименования свойства.

db4o всегда хранит значения полей и игнорирует свойства. Вот почему вы должны добавить атрибут индекса в поле. Также конфигурация вещи всегда относится к полю. Когда вы добавляете свойство, db4o будет просто хранить основное поле.

Единственное, что вы можете рассмотреть, если вы хотите использовать авто-свойства. Автоматические свойства C # поддерживаются полем, сгенерированным компилятором. Это имя поля будет очень некрасивым. Поэтому вы, вероятно, хотите использовать обычные свойства с обычным полем.

Примечание. Для Silverlight необходимо использовать открытые поля, поскольку db4o не может получить доступ к закрытым полям с помощью отражения.

...