Como informar à estrutura da entidade como salvar instâncias de um tipo personalizado (que pode ser armazenado como escalar)

StackOverflow https://stackoverflow.com/questions/9451000

  •  13-11-2019
  •  | 
  •  

Pergunta

Uma das minhas classes de entidade seria possível armazenar em um banco de dados do SQL Server como um BIGINT.Minha pergunta é:Como faço para obter um contexto de estrutura de entidade para saber como armazenar e recuperar instâncias da minha aula de entidade?

Mais detalhes.estou a usar Hora de Noda, que pode representar uma (muito) gama mais ampla de datas do que o SQL ou .NET DateTime (e é uma cobertura de sobremesa).Minha aula de entidade, acontecendo, é um invólucro na aula instantânea da Nodatime.Eu posso definir um acontecimento a partir de um longo e tirar muito tempo com métodos como .SetFromlong (longo instante) e .tolong ().

Atualmente, tenho meu modelo funcionando, salvando classes que contêm propriedades do tipo de data de dados do DOT Net.Se, em vez disso, quero usar as propriedades do meu tipo personalizado "acontecendo", como digo à estrutura da entidade como salvá -las?

Se estou lendo este artigo sobre modelagem e mapeamento, estou no caminho certo ou perdendo algo mais simples?

http://msdn.microsoft.com/en-us/library/bb896343.aspx

Estou usando o framework de entidade 4.

Foi útil?

Solução

O que eu recomendo fazer é adicionar 2 propriedades em sua entidade, um NodaTime e um longo, e excluir sua propriedade NodaTime usando [NotMapped] em seu modelo EF e, em seguida, em seu getter/setter atualizar o longo.

ou seja

public class MyEntity{
   public long TimeAsLong{get;set;}
   [NotMapped]
   public Happening {
      get{
        return new Happening().SetFromLong(TimeAsLong);
      }
      set {
         TimeAsLong = value.ToLong();
      }
   }
}

O efeito disso será que o long será armazenado no banco de dados, mas você poderá acessá-lo na classe via NodaTime

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top