Menu Docs
Página inicial do Docs
/ /
Atlas Device SDKs
/ / /

Tipos de campo - .NET SDK

Nesta página

  • Visão geral
  • Tipos de .NET
  • Tipos de MongoDB.Bson
  • propriedade de GUID e ObjectId
  • Usando valores decimais
  • Tipos específicos do domínio

O .NET SDK oferece suporte a três categorias de tipos de dados:

  • tipos de .NET

  • Tipos de MongoDB.Bson

  • Tipos específicos do Realm

Para saber como tipos de dados específicos são mapeados para tipos BSON em um Esquema de Serviços de Aplicativo, consulte Mapeamento de Modelo de Dados na documentação de Serviços de Aplicativo do Atlas.

O Realm é compatível com os seguintes tipos de dados .NET e suas contrapartes anuláveis:

  • bool

  • byte

  • short

  • int

  • long

  • float

  • double

  • decimal

  • char

  • string

  • byte[]

  • DateTimeOffset (observação: o Realm converte DateTimeOffset valores de para UTC antes de armazenar no banco de dados e não armazena as informações de fuso horário.Consulte Problema #1835 para obter mais informações.)

  • Guid

  • IList<T>, onde T é qualquer um dos tipos de dados suportados (consulte Listas)

Observação

Os tipos byte, char, short, int e long são todos armazenados como valores inteiros de 64 bits no Realm.

  • ObjectId

  • Decimal128

MongoDB.Bson.ObjectId é um valor exclusivo de 12 bytes específico do MongoDB, enquanto o .NET tipo Guid integrado é um valor universalmente exclusivo de 16 bytes. Ambos os tipos são indexáveis e qualquer um pode ser usado como chave primária.

O Realm suporta valores decimais de 128 bits com o tipo Decimal128 BSON. Ao definir um tipo de decimal, você pode usar o tipo Decimal128 BSON ou o tipo .NET decimal , mesmo que seja apenas um decimal de 96 bits. O SDK converte automaticamente entre os dois, embora você corra o risco de perder precisão ou alcance. O exemplo a seguir mostra como usar o tipo Decimal128 BSON e o tipo .NET decimal :

public class MyClassWithDecimals
{
[PrimaryKey]
public ObjectId _id { get; } = ObjectId.GenerateNewId();
// Standard (96-bit) decimal value type
public decimal VeryPreciseNumber { get; set; }
// 128-bit Decimal128
public Decimal128 EvenMorePreciseNumber { get; set; }
public Decimal128 AnotherEvenMorePreciseNumber { get; set; }
// Nullable decimal or Decimal128 are supported, too
public decimal? MaybeDecimal { get; set; }
public Decimal128? MaybeDecimal128 { get; set; }
public void DoDecimalStuff()
{
var myInstance = new MyClassWithDecimals();
// To store decimal values:
realm.Write(() =>
{
myInstance.VeryPreciseNumber = 1.234567890123456789M;
myInstance.EvenMorePreciseNumber = Decimal128.Parse("987654321.123456789");
// Decimal128 has explicit constructors that take a float or a double
myInstance.EvenMorePreciseNumber = new Decimal128(9.99999);
});
}
}

Qualquer classe que implemente RealmObject ou EmbeddedObject pode conter uma subclasse RealmObject e/ou uma subclasse de objetos embarcados . Além disso, o Realm suporta os seguintes tipos personalizados:

Voltar

Tipos de dados suportados

Próximo

Coleções de resultados