db4o в.NET: свойства или поля?
Я начинаю с db4o в.NET 4.0. Должен ли я использовать поля или свойства для постоянных объектов?
Я понимаю, что использовать [Indexed]
атрибут для уникальных идентификаторов, мне нужно использовать поле. Как реализовать соответствующее свойство ID без дублирования данных в моей базе данных?
1 ответ
Используйте обычные свойства, как вы сделали бы с любым другим объектом. Держите ваши поля приватными и получайте к ним доступ через свойства и методы. Это делает его более гибким, например, для переименования свойства.
db4o всегда хранит значения полей и игнорирует свойства. Вот почему вы должны добавить атрибут индекса в поле. Также конфигурация вещи всегда относится к полю. Когда вы добавляете свойство, db4o будет просто хранить основное поле.
Единственное, что вы можете рассмотреть, если вы хотите использовать авто-свойства. Автоматические свойства C# поддерживаются полем, сгенерированным компилятором. Это имя поля будет очень некрасивым. Поэтому вы, вероятно, хотите использовать обычные свойства с обычным полем.
Примечание. Для Silverlight необходимо использовать открытые поля, поскольку db4o не может получить доступ к закрытым полям с помощью отражения.