Classe Realm
Uma Instância de Realm (também conhecida como Realm) representa um reconhecimento de data center Realm.
Aviso: as instâncias do Realm não congeladas não são seguras para threads e não podem ser compartilhadas entre threads. Você deve chamar GetInstance(RealmConfigurationBase?) Em cada thread em que deseja interagir com o Realm.
Implementos
namespace: Realms
Conjunto: Realm.exe
Sintaxe
public class Realm : IDisposable
Propriedades
| Editar esta página Ver fonteConfig
Obtém o RealmConfigurationBase que controla o caminho desse realm e outras configurações.
Declaração
public RealmConfigurationBase Config { get; }
Valor da propriedade
Tipo | Descrição |
---|---|
RealmConfigurationBase | A configuração do Realm. |
API dinâmica
Obtém um objeto abrangendo a API dinâmica para esta instância do Realm.
Declaração
[Preserve]
public Realm.Dynamic DynamicApi { get; }
Valor da propriedade
Tipo | Descrição |
---|---|
Realm.Dinâmico | Uma instância Realm.Dynamic que envolve este Realm. |
Está fechado
Obtém um valor indicando se a instância foi fechada por meio de Dispose(). Se true
, você não deve chamar métodos nessa instância.
Declaração
public bool IsClosed { get; }
Valor da propriedade
Tipo | Descrição |
---|---|
bool |
|
IsFrozen
Obtém um valor indicando se este Realm está congelado. Os Realms congelados são imutáveis e não serão atualizados quando forem feitas gravações no reconhecimento de data center. Ao contrário dos Realms ativos, os Realms congelados podem ser usados em todos os threads.
Declaração
public bool IsFrozen { get; }
Valor da propriedade
Tipo | Descrição |
---|---|
bool |
|
IsInTransaction
Obtém um valor indicando se há uma transação de escrita ativa associada a este Realm.
Declaração
public bool IsInTransaction { get; }
Valor da propriedade
Tipo | Descrição |
---|---|
bool |
|
Veja também
| Editar esta página Ver fonteEsquema
Obtém a instância do RealmSchema que descreve todos os tipos que podem ser armazenados neste Realm.
Declaração
public RealmSchema Schema { get; }
Valor da propriedade
Tipo | Descrição |
---|---|
Esquema de Realm | O esquema do Realm. |
Assinaturas
Obtém o SubscriptionSet que representa as assinaturas ativas para este Realm.
Declaração
public SubscriptionSet Subscriptions { get; }
Valor da propriedade
Tipo | Descrição |
---|---|
Conjunto de assinaturas | O SubscriptionSet contendo as assinaturas de query que o servidor está usando para decidir quais objetos sincronizar com o Realm local . Se o Realm não foi criado com uma FlexibleSyncConfiguration, isso lançará uma NotSupportedException. |
Exceções
Tipo | Condição |
---|---|
NotSupportedException | Lançado se o Realm não tiver sido aberto com uma FlexibleSyncConfiguration. |
SyncSession
Declaração
public Session SyncSession { get; }
Valor da propriedade
Tipo | Descrição |
---|---|
Sessão | A sessão que é responsável por sincronizar com o MongoDB Atlas se a Instância de Realm foi criada com FlexibleSyncConfiguration ou PartitionSyncConfiguration. Se este for um Realm local ou na memória, uma NotSupportedException será lançada. |
Exceções
Tipo | Condição |
---|---|
NotSupportedException | Lançado se o Realm não tiver sido aberto com FlexibleSyncConfiguration ou PartitionSyncConfiguration. |
UseLegacyGuidRepresentação
Obtém ou define um valor que indica se a representação de legado deve ser usada ao armazenar valores de Guia no reconhecimento de data center.
Declaração
[Obsolete("It is strongly advised to migrate to the new Guid representation as soon as possible to avoid data inconsistency.")]
public static bool UseLegacyGuidRepresentation { get; set; }
Valor da propriedade
Tipo | Descrição |
---|---|
bool |
Observações
Nas versões anteriores à 10.10.0, o .NET SDK tinha um bug em que armazenava valores de Guia com ordenação de bytes específica da arquitetura (little-endian para as CPUs mais modernas), enquanto o mecanismo de query do reconhecimento de data center e a sincronização sempre os tratariam como big- endian. Isso se expressa como diferentes representações de strings entre o SDK e o reconhecimento de data center - por exemplo "f2952191-a847-41c3-8362-497f92cb7d24" em vez de "912195f2-47a8-c341-8362-497f92cb7d24" (observe os bytes trocados nos 3 primeiros componentes). A partir da versão 10.10.0, a representação big-endian é a padrão e uma migração única e contínua é fornecida para Realms locais (não sincronizados). Na primeira vez que um Realm for aberto, todas as propriedades que mantêm um valor Guia serão atualizadas do formato little-endian para big-endian, e o .NET SDK as tratará como tal. Não deve haver nenhuma alteração perceptível ao ler/gravar dados do SDK, mas você deve ver valores consistentes ao acessar o Arquivo de Realm do Realm Studio ou de outros SDKs.
Para Realms sincronizados, tal migração é impossível devido à natureza distribuída dos dados. Portanto, pressupõe-se que a representação do Guia no Atlas, se oficial e os valores do SDK, devem ser atualizados para corresponder a ela. IXO Metodos que o SDK começará a relatar uma representação de string diferente de dados de guia existente em comparação com pré-10.10.0. Se você estiver consultando sistemas de terceiros a partir do SDK, poderá ver resultados inesperados. Para preservar o comportamento existente (little-endian no SDK, big-endian no Atlas), defina esse valor como true
e entre em contato com a equipe de suporte do Realm (https://support.mongodb.com) para ajudar na migração dos seus dados para o novo formato.
Métodos
| Editar esta página Ver fonteAdicionar<T>(IEnumerable<T>)
Adicione uma coleção de AsymmetricObjects autônomos a este Realm.
Declaração
public void Add<T>(IEnumerable<T> objs) where T : IAsymmetricObject
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
IEnumerable<T> | objs | Uma coleção de instâncias de IAsymmetricObject que serão adicionadas a este Realm. |
Parâmetros de tipo
Nome | Descrição |
---|---|
t | O tipo T não deve ser apenas um IAsymmetricObject, mas também ter sido processado pelo tecelão Fody, para que tenha propriedades persistentes. |
Observações
Se a collection contiver itens que já são managed por este Realm, eles serão ignorados. Este método modifica os objetos no local, o que significa que, após sua execução, todos os itens da coleção serão gerenciados. Depois que um IAsymmetricObject se torna managed e a transação é confirmada, o desreferenciamento de qualquer propriedade da referência IAsymmetricObject original gera uma exceção. Portanto, nenhuma das propriedades dos elementos na coleção pode mais ser desreferenciada após a transação.
Exceções
Tipo | Condição |
---|---|
RealmInvalidTransactionException | Se você invocar isso quando não houver uma transação de escrita ativa no Realm, |
RealmObjectManagedByAntherRealmException | Você não pode managed um objeto com mais de um Realm. |
Add<T>(IEnumerable<T>, bool)
Adicione uma coleção de RealmObjects independentes a este Realm.
Declaração
public void Add<T>(IEnumerable<T> objs, bool update = false) where T : IRealmObject
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
IEnumerable<T> | objs | Uma collection de instâncias de IRealmObject que serão adicionadas a este Realm. |
bool | update | Se |
Parâmetros de tipo
Nome | Descrição |
---|---|
t | O tipo T não deve ser apenas um IRealmObject, mas também ter sido processado pelo tecelão Fody, para que tenha propriedades persistentes. |
Observações
Se a collection contiver itens que já são managed por este Realm, eles serão ignorados. Este método modifica os objetos no local, o que significa que, após sua execução, todos os itens em objs
serão gerenciados.
Exceções
Tipo | Condição |
---|---|
RealmInvalidTransactionException | Se você invocar isso quando não houver uma transação de escrita ativa no Realm, |
RealmObjectManagedByAntherRealmException | Você não pode managed um objeto com mais de um Realm. |
Adicionar<T>(T)
Esse Realm começará a gerenciar um IAsymmetricObject que foi criado como um objeto autônomo.
Declaração
public void Add<T>(T obj) where T : IAsymmetricObject
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
t | obj | Deve ser um IAsymmetricObject autônomo, |
Parâmetros de tipo
Nome | Descrição |
---|---|
t | O tipo T não deve ser apenas um IAsymmetricObject, mas também ter sido processado pelo tecelão Fody, para que tenha propriedades persistentes. |
Observações
Se o objeto já for managed por este Realm, este método não fará nada. Este método modifica o objeto no local, o que significa que, após sua execução, IAsymmetricObject será gerenciado. Depois que um IAsymmetricObject se torna managed, a desreferência de qualquer propriedade da referência IAsymmetricObject original gera uma exceção.
Exceções
Tipo | Condição |
---|---|
RealmInvalidTransactionException | Se você invocar isso quando não houver uma transação de escrita ativa no Realm, |
RealmObjectManagedByAntherRealmException | Você não pode managed um objeto com mais de um Realm. |
Adicionar<T>(T, bool)
Este Realm começará a gerenciar um IRealmObject que foi criado como um objeto autônomo.
Declaração
public T Add<T>(T obj, bool update = false) where T : IRealmObject
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
t | obj | Deve ser um objeto autônomo, |
bool | update | Se |
Devoluções
Tipo | Descrição |
---|---|
t | O objeto passado, para que você possa escrever |
Parâmetros de tipo
Nome | Descrição |
---|---|
t | O tipo T não deve ser apenas um IRealmObject, mas também ter sido processado pelo tecelão Fody, para que tenha propriedades persistentes. |
Observações
Se o objeto já for managed por este Realm, este método não fará nada. Este método modifica o objeto no local, o que significa que, após sua execução, obj
será gerenciado. Devolvê-lo destina-se apenas a uma conveniência para habilitar cenários de sintaxe fluentes.
Exceções
Tipo | Condição |
---|---|
RealmInvalidTransactionException | Se você invocar isso quando não houver uma transação de escrita ativa no Realm, |
RealmObjectManagedByAntherRealmException | Você não pode managed um objeto com mais de um Realm. |
All<T>()
Extraia um conjunto iterável de objeto para uso direto ou query adicional.
Declaração
public IQueryable<T> All<T>() where T : IRealmObject
Devoluções
Tipo | Descrição |
---|---|
IQueryable<T> | Uma collection consultável que, sem filtragem adicional, permite iterar todos os objeto da classe T, neste Realm. |
Parâmetros de tipo
Nome | Descrição |
---|---|
t | O tipo T deve ser um IRealmObject. |
Observações
A coleção retornada é avaliada lentamente e nenhum objeto está sendo mantido na memória pela própria coleção, o que significa que essa chamada é muito barata mesmo para um grande número de itens.
Comece a escrever()
Inicia uma transação de escrita para este Realm.
Declaração
public Transaction BeginWrite()
Devoluções
Tipo | Descrição |
---|---|
transação | Uma transação no modo de gravação, que é necessária para qualquer criação ou modificação de objetos persistentes em um Realm. |
Exemplos
using (var trans = realm.BeginWrite())
{
realm.Add(new Dog
{
Name = "Rex"
});
trans.Commit();
}
|
Editar esta página
Ver fonte
OpenWriteAsync(CancelationToken)
Inicia de forma assíncrona uma transação de escrita para este Realm.
Declaração
public Task<Transaction> BeginWriteAsync(CancellationToken cancellationToken = default)
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
Token de cancelamento | Token de cancelamento | Token de cancelamento opcional para parar de esperar para iniciar uma transação de escrita. |
Devoluções
Tipo | Descrição |
---|---|
Tarefa<transação> | Uma tarefa aguardável que retorna uma transação no modo de escrita. Uma transação é necessária para qualquer criação, exclusão ou modificação de objetos persistentes em um Realm. |
Observações
Esse método adquire de forma assíncrona o bloqueio de gravação e, em seguida, despacha a continuação no thread original em que o Realm foi aberto. A transação pode então ser confirmada de forma assíncrona ou síncrona.
Quando invocado em um thread sem SynchronizationContext (ou seja, normalmente threads em background), esse método chama OpenWrite() e é executado de forma síncrona.
Exemplos
using (var trans = await realm.BeginWriteAsync())
{
realm.Add(new Dog
{
Name = "Rex"
});
await trans.CommitAsync();
// or just
// trans.Commit();
}
|
Editar esta página
Ver fonte
Compact(RealmConfigurationBase?)
Compacta um Arquivo de Realm. Um Arquivo de Realm geralmente contém espaço livre/não utilizado. Esse método remove esse espaço livre e o tamanho do arquivo é reduzido. O objeto dentro do Arquivo de Realm permanecem intocados.
Declaração
public static bool Compact(RealmConfigurationBase? config = null)
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
RealmConfigurationBase | config | Configuração opcional. |
Devoluções
Tipo | Descrição |
---|---|
bool |
|
Observações
O Arquivo de Realm não deve estar aberto em outras threads. O sistema de arquivos deve ter espaço livre para pelo menos uma cópia do arquivo Realm. Este método não deve ser chamado dentro de uma transação. O Arquivo de Realm permanece intocado se qualquer operação de arquivo falhar.
DeleteRealm(RealmConfigurationBase)
Exclui todos os arquivos associados a um determinado Realm se o Realm existir e não estiver aberto.
Declaração
public static void DeleteRealm(RealmConfigurationBase configuration)
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
RealmConfigurationBase | configuração, configuração | Um RealmConfigurationBase que fornece o caminho do realm. |
Observações
O Arquivo de Realm não deve estar aberto em outros segmentos.
Todos, exceto o .bloqueio o arquivo será excluído por isso.
Exceções
Tipo | Condição |
---|---|
RealmInUseException | Lançado se o Realm ainda estiver aberto. |
Dispose()
Descarta a instância atual e fecha o Realm nativo se esta for a última instância restante mantendo uma referência a ela.
Declaração
public void Dispose()
Encontre<T>(ObjectId?)
Pesquisa rápida de um objeto de uma classe que tem uma propriedade PrimaryKey.
Declaração
public T? Find<T>(ObjectId? primaryKey) where T : IRealmObject
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
ObjectId? | chave primária | A chave primária deve ser correspondida exatamente, o mesmo que uma pesquisa == . |
Devoluções
Tipo | Descrição |
---|---|
t |
|
Parâmetros de tipo
Nome | Descrição |
---|---|
t | O tipo T deve ser um IRealmObject. |
Exceções
Tipo | Condição |
---|---|
RealmClassLacksPrimaryKeyException | Se a classe IRealmObject T não tiver PrimaryKeyAttribute. |
Encontrar<T>(Guid?)
Pesquisa rápida de um objeto de uma classe que tem uma propriedade PrimaryKey.
Declaração
public T? Find<T>(Guid? primaryKey) where T : IRealmObject
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
Guia? | chave primária | A chave primária deve ser correspondida exatamente, o mesmo que uma pesquisa == . |
Devoluções
Tipo | Descrição |
---|---|
t |
|
Parâmetros de tipo
Nome | Descrição |
---|---|
t | O tipo T deve ser um IRealmObject. |
Exceções
Tipo | Condição |
---|---|
RealmClassLacksPrimaryKeyException | Se a classe IRealmObject T não tiver PrimaryKeyAttribute. |
Encontrar<T>(longo?)
Pesquisa rápida de um objeto de uma classe que tem uma propriedade PrimaryKey.
Declaração
public T? Find<T>(long? primaryKey) where T : IRealmObject
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
longo? | chave primária | A chave primária deve ser correspondida exatamente, o mesmo que uma pesquisa == . Um argumento do tipo |
Devoluções
Tipo | Descrição |
---|---|
t |
|
Parâmetros de tipo
Nome | Descrição |
---|---|
t | O tipo T deve ser um IRealmObject. |
Exceções
Tipo | Condição |
---|---|
RealmClassLacksPrimaryKeyException | Se a classe IRealmObject T não tiver PrimaryKeyAttribute. |
Encontrar<T>(cadeia de caracteres?)
Pesquisa rápida de um objeto de uma classe que tem uma propriedade PrimaryKey.
Declaração
public T? Find<T>(string? primaryKey) where T : IRealmObject
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
string | chave primária | A chave primária deve ser correspondida exatamente, o mesmo que uma pesquisa == . |
Devoluções
Tipo | Descrição |
---|---|
t |
|
Parâmetros de tipo
Nome | Descrição |
---|---|
t | O tipo T deve ser um IRealmObject. |
Exceções
Tipo | Condição |
---|---|
RealmClassLacksPrimaryKeyException | Se a classe IRealmObject T não tiver PrimaryKeyAttribute. |
Congelar()
Retorna um snapshot congelado (imutável) deste Realm.
Um Realm congelado é uma visualização de snapshot imutável de uma versão específica dos dados de um Realm. Ao contrário das instâncias normais do Realm , ele não é atualizado ao vivo para refletir as gravações feitas no Realm e pode ser acessado a partir de qualquer thread. Não é permitido gravar em um realm congelado, e tentar iniciar uma transação de escrita lançará uma exceção. Todos os objeto e collection lidos de um Realm congelado também serão congelados. Observação: manter um grande número de Realms congelados com diferentes versões vivos pode ter um impacto negativo no tamanho do arquivo do banco de dados subjacente. Para evitar tal situação, é possível definir MaxNumberOfAtiveVersions.Declaração
public Realm Freeze()
Devoluções
Tipo | Descrição |
---|---|
Realm | Uma instância congelada do Realm . |
GetInstance(RealmConfigurationBase?)
de fábrica para obter uma instância de Realm para este thread.
Declaração
public static Realm GetInstance(RealmConfigurationBase? config = null)
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
RealmConfigurationBase | config | Configuração opcional. |
Devoluções
Tipo | Descrição |
---|---|
Realm | Uma Instância de Realm . |
Exceções
Tipo | Condição |
---|---|
RealmFileAccessErrorException | Lançado se o sistema de arquivos retornar um erro que impeça a criação do arquivo. |
GetInstance(string)
de fábrica para obter uma instância de Realm para este thread.
Declaração
public static Realm GetInstance(string databasePath)
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
string | databasePath | O caminho para o Realm, deve ser um caminho completo válido para a plataforma atual, subdiretório relativo ou apenas o nome do arquivo. |
Devoluções
Tipo | Descrição |
---|---|
Realm | Uma Instância de Realm . |
Observações
Se você especificar um caminho relativo, a sandbox do sistema operacional poderá causar falha se você especificar algo diferente de um subdiretório.
Exceções
Tipo | Condição |
---|---|
RealmFileAccessErrorException | Lançado se o sistema de arquivos retornar um erro que impeça a criação do arquivo. |
GetInstanceAsync(RealmConfigurationBase?, CancellationToken)
de fábrica para obter de forma assíncrona uma Instância de Realm.
Declaração
public static Task<Realm> GetInstanceAsync(RealmConfigurationBase? config = null, CancellationToken cancellationToken = default)
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
RealmConfigurationBase | config | Um objeto de configuração que descreve o Realm. |
Token de cancelamento | Token de cancelamento | Um token de cancelamento opcional que pode ser usado para cancelar o trabalho. |
Devoluções
Tipo | Descrição |
---|---|
Tarefa<Realm> | Uma Tarefa<TResult> aguardada que será concluída assim que o realm remoto estiver totalmente sincronizado ou após a execução das migrações, se for um realm local. |
Observações
Se a configuração for SyncConfigurationBase, o domínio será baixado e totalmente sincronizado com o servidor antes da conclusão do objeto de tarefa retornado. Caso contrário, esse método executará todas as migrações em um thread em segundo plano antes de retornar uma instância aberta ao thread de chamada.
IsSameInstance(Realm)
Determina se esta instância é a mesma instância núcleo que o argumento passado no.
Declaração
public bool IsSameInstance(Realm other)
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
Realm | Outro | O Realm para comparar com o Realm atual. |
Devoluções
Tipo | Descrição |
---|---|
bool |
|
Observações
Você pode, e deve, ter várias instâncias abertas em threads diferentes que tenham o mesmo caminho e abram o mesmo Realm.
Refresh()
Atualize a instância do Realm e os objetos pendentes para apontar para a versão persistente mais recente.
Declaração
public bool Refresh()
Devoluções
Tipo | Descrição |
---|---|
bool | Se o Realm teve alguma atualização. Observe que isso pode retornar verdadeiro mesmo que nenhum dado tenha realmente alterado. |
RefreshAsync()
Aguarde de forma assíncrona que a Instância de Realm e os objetos pendentes sejam atualizados para ponto para a versão persistente mais recente.
Declaração
public Task<bool> RefreshAsync()
Devoluções
Tipo | Descrição |
---|---|
Tarefa<bool> | Se o Realm teve alguma atualização. Observe que isso pode retornar verdadeiro mesmo que nenhum dado tenha realmente alterado. |
Observações
Em threads de trabalho (onde o SynchronizationContext) é nulo, isso chamará o método Refresh() de bloqueio. No thread principal (ou em outros threads que tenham SynchronizationContext), isso aguardará até que a instância atualize automaticamente para resolver a tarefa. Observe que você deve manter uma referência ao Realm até que a tarefa retornada seja resolvida.
Remove(IRalmObjectBase)
Remove um objeto persistente deste Realm, excluindo-o efetivamente.
Declaração
public void Remove(IRealmObjectBase obj)
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
IRealmObjectBase | obj | Deve ser um objeto persistente neste Realm. |
Exceções
Tipo | Condição |
---|---|
RealmInvalidTransactionException | Se você invocar isso quando não houver uma transação de escrita ativa no Realm, |
ArgumentNullException | Se |
ArgumentException | Se você passar por um objeto não gerenciado. |
RemoveAll()
Remova todos os objetos de todos os tipos gerenciados por este Realm.
Declaração
public void RemoveAll()
Exceções
Tipo | Condição |
---|---|
RealmInvalidTransactionException | Se você invocar isso quando não houver uma transação de escrita ativa no Realm, |
RemoveAll<T>()
Remova todos os objetos de um tipo do Realm.
Declaração
public void RemoveAll<T>() where T : IRealmObject
Parâmetros de tipo
Nome | Descrição |
---|---|
t | Tipo de objetos a serem removidos. |
Exceções
Tipo | Condição |
---|---|
RealmInvalidTransactionException | Se você invocar isso quando não houver uma transação de escrita ativa no Realm, |
ArgumentException | Se o tipo T não fizer parte do conjunto limitado de classes neste Esquema do Realm. |
RemoveRange<T>(IQueryable<T>)
Remova objetos correspondentes a uma query do Realm.
Declaração
public void RemoveRange<T>(IQueryable<T> range) where T : IRealmObjectBase
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
IQueryable<T> | faixa | A query para corresponder. |
Parâmetros de tipo
Nome | Descrição |
---|---|
t | Tipo de objetos a serem removidos. |
Exceções
Tipo | Condição |
---|---|
RealmInvalidTransactionException | Se você invocar isso quando não houver uma transação de escrita ativa no Realm, |
ArgumentException | Se |
ArgumentNullException | Se |
ResolverReferência<TValue>(Dicionário<TValue>)
Retorna a mesma coleção que a referenciada quando o ThreadSafeReference.Dictionary<TValue> foi criado pela primeira vez, mas resolvido para o Realm atual para este thread.
Declaração
public IDictionary<string, TValue>? ResolveReference<TValue>(ThreadSafeReference.Dictionary<TValue> reference)
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
ThreadSafeReference.Dicionário<TValue> | Referência | A referência segura de thread ao IDictionary<TKey,TValue> confinado a thread para resolver neste Realm. |
Devoluções
Tipo | Descrição |
---|---|
IDictionary<string,TValue> | Uma instância confinada por thread do IDictionary<TKey,TValue> original resolvida para o thread atual ou |
Parâmetros de tipo
Nome | Descrição |
---|---|
TValue | O tipo dos valores contidos no dicionário. |
ResolveReference<T>(List<T>)
Retorna a mesma collection que a referenciada quando o ThreadSafeReference.List<T> foi criado pela primeira vez, mas resolvido para o Realm atual para este thread.
Declaração
public IList<T>? ResolveReference<T>(ThreadSafeReference.List<T> reference)
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
ThreadSafeReference.Lista<T> | Referência | A referência segura de thread para o IList<T> confinado a thread para resolver neste Realm. |
Devoluções
Tipo | Descrição |
---|---|
IList<T> | Uma instância confinada por thread do IList<T> original resolvida para o thread atual ou |
Parâmetros de tipo
Nome | Descrição |
---|---|
t | O tipo dos objetos, contidos na collection. |
ResolveReference<T>(objeto<T>)
Retorna o mesmo objeto que o referenciado quando o ThreadSafeReference.Object<T> foi criado pela primeira vez, mas resolvido para o Realm atual para este thread.
Declaração
public T? ResolveReference<T>(ThreadSafeReference.Object<T> reference) where T : IRealmObjectBase
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
ThreadSafeReference.objeto<T> | Referência | A referência segura de thread ao IRealmObject/IEmbeddedObject confinado ao thread para resolver neste Realm. |
Devoluções
Tipo | Descrição |
---|---|
t | Uma instância confinada por thread do IRealmObject/IEmbeddedObject original resolvida para o thread atual ou |
Parâmetros de tipo
Nome | Descrição |
---|---|
t | O tipo do objeto, contido na referência. |
ResolveReference<T>(Query<T>)
Retorna a mesma query que a referenciada quando o ThreadSafeReference.Query<T> foi criado pela primeira vez, mas resolvido para o Realm atual para este thread.
Declaração
public IQueryable<T> ResolveReference<T>(ThreadSafeReference.Query<T> reference) where T : IRealmObjectBase
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
ThreadSafeReference.query<T> | Referência | A referência segura de thread para o IQueryable<T> confinado a thread para resolver neste Realm . |
Devoluções
Tipo | Descrição |
---|---|
IQueryable<T> | Uma instância confinada por thread do IQueryable<T> original resolvida para o thread atual. |
Parâmetros de tipo
Nome | Descrição |
---|---|
t | O tipo do objeto, contido na query. |
ResolveReference<T>(Set<T>)
Retorna a mesma collection que a referenciada quando o ThreadSafeReference.Set<T> foi criado pela primeira vez, mas resolvido para o Realm atual para este thread.
Declaração
public ISet<T>? ResolveReference<T>(ThreadSafeReference.Set<T> reference)
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
ThreadSafeReference . Definir <T> | Referência | A referência segura de thread para o ISet<T> confinado a thread para resolver neste Realm. |
Devoluções
Tipo | Descrição |
---|---|
ISet<T> | Uma instância confinada por thread do ISet<T> original resolvida para o thread atual ou |
Parâmetros de tipo
Nome | Descrição |
---|---|
t | O tipo dos elementos, contidos na collection. |
SetLegacySerialization()
Define o serializador para usar a serialização legada.
Declaração
[Obsolete("It is recommended to use new serialization.")]
public static void SetLegacySerialization()
Observações
Na versão 12.0.0 , foi introduzida uma nova serialização e desserialização automáticas de classes do Realm ao usar métodos no MongoClient.Collection<TDocument>, sem a necessidade de anotar classes com atributos do MongoDB.Bson . Essa nova serialização alterou o serializador padrão para vários tipos (DateTimeOffset , por exemplo), portanto, se você precisar chamar esse método, prefira usar a serialização antiga. Lembre-se de chamar esse método antes que qualquer tipo de serialização seja necessária, caso contrário, não é garantido que ele funcione conforme o esperado.
Write(ação)
Execute uma ação dentro de uma transação temporária . Se nenhuma exceção for lançada, a transação será confirmada.
Declaração
public void Write(Action action)
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
em ação | ação | ação a ser executada dentro de um transação, criando, atualizando ou removendo objeto. |
Observações
Cria sua própria transação temporária e a confirma após executar a Lambda passada para action
. Tenha cuidado ao envolver várias atualizações de propriedade única em várias chamadas de Write(ação) . É mais eficiente atualizar várias propriedade ou até mesmo criar vários objeto em um único ação, a menos que você precise garantir atualizações mais refinadas.
Exemplos
realm.Write(() =>
{
realm.Add(new Dog
{
Name = "Eddie",
Age = 5
});
});
|
Editar esta página
Ver fonte
WriteAsync(ação, CancellationToken)
Execute uma ação dentro de uma transação temporária . Se nenhuma exceção for lançada, a transação será confirmada. Se o método não for chamado de um thread com um SynchronizationContext (como o thread da interface do usuário), ele se comportará de forma síncrona.
Declaração
public Task WriteAsync(Action action, CancellationToken cancellationToken = default)
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
em ação | ação | ação a ser executada dentro de um transação, criando, atualizando ou removendo objeto. |
Token de cancelamento | Token de cancelamento | Token de cancelamento opcional para parar de esperar para iniciar uma transação de escrita. |
Devoluções
Tipo | Descrição |
---|---|
Tarefa | Uma tarefa aguardável que indica que a transação foi confirmada com sucesso. |
Exemplos
await realm.WriteAsync(() =>
{
realm.Add(new Dog
{
Breed = "Dalmatian",
});
});
|
Editar esta página
Ver fonte
WriteAsync<T>(Func<T>, CancellationToken)
Execute um delegado dentro de uma transação temporária . Se nenhuma exceção for lançada, a transação será confirmada. Se o método não for chamado de um thread com um SynchronizationContext (como o thread da interface do usuário), ele se comportará de forma síncrona.
Declaração
public Task<T> WriteAsync<T>(Func<T> function, CancellationToken cancellationToken = default)
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
Função<T> | function | delegue com um valor de retorno para executar dentro de uma transação, criando, atualizando ou removendo objetos. |
Token de cancelamento | Token de cancelamento | Token de cancelamento opcional para parar de esperar para iniciar uma transação de escrita. |
Devoluções
Tipo | Descrição |
---|---|
Tarefa<T> | Uma tarefa aguardável que indica que a transação foi confirmada com sucesso. O resultado da tarefa é o resultado retornado invocando |
Parâmetros de tipo
Nome | Descrição |
---|---|
t | O tipo retornado pelo delegado de entrada. |
Exemplos
var dog = await realm.WriteAsync(() =>
{
return realm.Add(new Dog
{
Breed = "Dalmatian",
});
});
|
Editar esta página
Ver fonte
WriteCopy(RealmConfigurationBase)
Grava uma cópia compactada do Realm no caminho na configuração especificada. Se o objeto de configuração tiver EncryptionKey não nulo , a cópia será criptografada com essa chave.
Declaração
public void WriteCopy(RealmConfigurationBase config)
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
RealmConfigurationBase | config | Configuração, especificando o caminho e, opcionalmente, a chave de encriptação para a cópia. |
Observações
- O arquivo de destino já não pode existir.
- Ao usar um Realm local e isso é chamado de dentro de uma transação, ele grava os dados atuais, e não os dados como estavam quando a última transação foi confirmada.
- Ao usar a Sincronização, é necessário que todas as alterações locais sejam sincronizadas com o servidor antes que a cópia possa ser gravada. Isso é para garantir que o arquivo possa ser usado como ponto de partida para um aplicativo recém-instalado. A função será executada se houver carregamentos pendentes.
- Não é possível gravar uma cópia em um Realm de Flexible Sync, a menos que o Flexible Sync já esteja habilitado. 5 A alteração da Flexible Sync Sync para a sincronização baseada em partição não é suportada.
- A alteração da partição para sincronização não é suportada.
Gravar<T>(Func<T>)
Execute um delegado dentro de uma transação temporária . Se nenhuma exceção for lançada, a transação será confirmada.
Declaração
public T Write<T>(Func<T> function)
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
Função<T> | function | delegue com um valor de retorno para executar dentro de uma transação, criando, atualizando ou removendo objetos. |
Devoluções
Tipo | Descrição |
---|---|
t | O valor de retorno de |
Parâmetros de tipo
Nome | Descrição |
---|---|
t | O tipo retornado pelo delegado de entrada. |
Observações
Cria sua própria transação temporária e a confirma após executar a Lambda passada para function
. Tenha cuidado ao envolver várias atualizações de propriedade única em várias chamadas de Write(ação) . É mais eficiente atualizar várias propriedade ou até mesmo criar vários objeto em um único ação, a menos que você precise garantir atualizações mais refinadas.
Exemplos
var dog = realm.Write(() =>
{
return realm.Add(new Dog
{
Name = "Eddie",
Age = 5
});
});
Eventos
| Editar esta página Ver fonteErro
Acionado quando ocorre uma exceção no nível do Realm.
Declaração
public event EventHandler<ErrorEventArgs>? Error
eventType
Tipo | Descrição |
---|---|
EventHandler<ErrorEventArgs> |
RealmChanged
Acionado quando um Realm é alterado (ou seja, uma transação foi confirmada).
Declaração
public event Realm.RealmChangedEventHandler? RealmChanged
eventType
Tipo | Descrição |
---|---|
Realm.RealmChangedEventHandler |