db4o в.NET: свойства или поля?

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

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

1 ответ

Решение

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

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

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

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

Другие вопросы по тегам