类 ObjectSchema.Builder
允许构造ObjectSchema实例的可变构建器。
继承成员
命名空间: Realm 。模式
程序集:Realm.dll
语法
public class ObjectSchema.Builder : SchemaBuilderBase<Property>, IEnumerable<Property>, IEnumerable
构造函数
| 编辑本页 查看源代码Builder(string, ObjectType)
使用提供的名称初始化ObjectSchema.Builder类的新实例。
声明
public Builder(string name, ObjectSchema.ObjectType schemaType = ObjectType.RealmObject)
参数
类型 | 名称 | 说明 |
---|---|---|
字符串 | 名称 | 此构建器描述的ObjectSchema的名称。 |
ObjectSchema 。 ObjectType | schemaType | 此构建器描述的对象的ObjectSchema.ObjectType 。 |
异常
类型 | 条件 |
---|---|
ArgumentNullException | 如果 |
ArgumentException | 如果 |
Builder(Type)
初始化ObjectSchema.Builder类的新实例,该实例使用所提供的type
中的属性进行填充。
声明
public Builder(Type type)
参数
类型 | 名称 | 说明 |
---|---|---|
类型 | 类型 | 将用于填充构建器的类型。 它必须是RealmObject 、 EmbeddedObject或AsymmetricObject继承者。 |
备注
如果要使用强类型 API,例如Realm.Add<T>或Realm.All<T> ,则必须使用此方法构建模式。
完全支持添加新属性,但如果通过对象属性访问器访问这些属性,则删除或更改在类上定义的属性将导致引发运行时错误。
示例
class Person : RealmObject
{
public string Name { get; set; }
}
var personSchema = new Builder(typeof(Person));
// someTagsCollection is a collection of tags determined at runtime - e.g. obtained
// from a REST API.
foreach (var tag in someTagsCollection)
{
personSchema.Add(Property.Primitive(tag, RealmValueType.Bool));
}
var config = new RealmConfiguration
{
Schema = new[] { personSchema.Build() }
}
using var realm = Realm.GetInstance(config);
// Query for all people with a particular tag
var tag = "Tall";
var matches = realm.All<Person>().Filter($"{tag} = TRUE");
// Get/set the tag of a particular person
var hasTag = person.DynamicApi.Get<bool>(tag);
person.DynamicApi.Set(tag, true);
属性
| 编辑本页 查看源代码名称
获取或设置构建器描述的类的名称。
声明
public string Name { get; set; }
属性值
类型 | 说明 |
---|---|
字符串 | 类的名称。 |
RealmSchemaType
获取或设置一个值,该值指示此 ObjectSchema.Builder 描述的对象的 ObjectSchema.ObjectType 。
声明
public ObjectSchema.ObjectType RealmSchemaType { get; set; }
属性值
类型 | 说明 |
---|---|
ObjectSchema 。 ObjectType | 对象模式的ObjectSchema.ObjectType 。 |
方法
| 编辑本页 查看源代码添加(属性)
向此 ObjectSchema.Builder 添加一个新 属性 。
声明
public ObjectSchema.Builder Add(Property item)
参数
类型 | 名称 | 说明 |
---|---|---|
属性 | 列项 | 要添加的属性。 |
返回:
类型 | 说明 |
---|---|
ObjectSchema 。生成器 | 用于启用链式多个 Add(Property) 调用的原始 ObjectSchema.Builder 实例。 |
Build()
根据添加到此 ObjectSchema.Builder 的属性构造一个 ObjectSchema 。
声明
public ObjectSchema Build()
返回:
类型 | 说明 |
---|---|
对象模式 | 一个不可变的ObjectSchema实例,其中包含添加到ObjectSchema.Builder的属性。 |