Docs 菜单

Docs 主页开发应用程序Atlas Device SDKs

对象模型和模式 - .NET SDK

在此页面上

  • 对象类型和模式
  • 模式
  • 处理 Realm 对象

Realm 应用程序将数据建模为由属性/值对组成的对象,每个属性/值对包含一个或多个基元数据类型或其他 Realm 对象。 Realm 对象本质上与常规对象相同,但它们继承自RealmObjectEmbeddedObject ,并包含实时更新数据视图和响应式变更事件处理程序等附加功能。

每个 Realm 对象都有一个引用该对象类的对象类型。同一类型的对象共享一个对象模式,该模式定义了这些对象的属性和关系。

在 C# 中,通常使用 C# 类声明来定义对象模式。当 Realm 初始化时,它会发现所有已加载的程序集中定义的 Realm 对象,并相应地生成模式。这是定义模式的最简单方法,通常最不容易出错。但是,这种方法包括所有加载的 Realm 对象。在某些情况下,您只想使用类的子集或自定义 Realm 对象模式。为此,您可以通过编程定义模式

注意

.NET 在引用程序集中的类之前不会加载程序集,因此,如果您在一个程序集中定义对象模型并在另一个程序集中实例化 Realm,请务必在初始化之前调用包含对象模型的程序集中的方法。 否则,Realm 在第一次加载时将不会发现对象。

以下代码块显示了描述 Dog 的对象模式。每个 Dog 对象都必须包含一个 Name,并且可以选择包含狗的 AgeBreed 以及表示狗的 Owners 的人员列表。

public partial class Dog : IRealmObject
{
[PrimaryKey]
[MapTo("_id")]
public ObjectId Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public string Breed { get; set; }
public IList<Person> Owners { get; }
}
public partial class Person : IRealmObject
{
[PrimaryKey]
[MapTo("_id")]
public ObjectId Id { get; set; }
public string Name { get; set; }
// etc...
/* To add items to the IList<T>:
var dog = new Dog();
var caleb = new Person { Name = "Caleb" };
dog.Owners.Add(caleb);
*/
}

注意

要定义对象内的对象集合,请使用仅带有 getter 的IList<T> 。 您不需要在构造函数中初始化,因为 Realm 将在第一次访问该属性时生成一个集合实例。

注意

更多示例

CRUD-.NET SDK 部分提供了创建、读取、更新、筛选和删除 Realm 对象的示例。

← 对象模型 - .NET SDK