2011-03-11 33 views
0

我开始在.NET 4.0中使用db4o。我应该使用持久对象的字段或属性吗?.NET中的db4o:属性或字段?

据我所知,要将[Indexed]属性用于唯一ID,我需要使用一个字段。如何在不重复数据库中的数据的情况下实现相应的ID属性?

回答

4

使用常规属性,就像您对任何其他对象所做的一样。保持您的字段私密,并通过属性和方法访问它们。这使得它更加灵活,例如重命名属性。

db4o始终存储字段值并忽略属性。这就是为什么你必须在字段上添加索引属性。此外配置的东西总是指这个领域。当你添加一个属性时,db4o只会存储基础字段。

如果您想使用自动属性,您可能只想考虑一下。 C#自动属性由编译器生成的字段支持。这个字段名称会非常难看。因此,您可能希望使用常规字段的常规属性。

注意:对于Silverlight,您需要使用公共字段,因为db4o无法通过反射访问私有字段。

+0

+1通过反射访问私人字段。我错误地认为db4o无法访问私有字段。为了方便,我大多使用自动属性,但我注意到编译器生成的丑陋字段。 – 2011-03-12 07:13:34