Pergunta

Como você definir um campo de DBNull na estrutura de entidades? Os campos são fortemente tipado para que você não pode defini-lo igual a DBNull.Value e eu não encontrou qualquer método para definir um campo de DBNull. Parece que isso é uma coisa necessária para fazer, mas depois de muita Google pesquisa eu encontrei nada sobre isso.

Estou tentando definir um campo de data e hora no Entity Framework usando vb.net. Isso me obriga a escrever

 myEntity.mydate = Nothing

Esta não define o campo para NULL, mas sim define como o valor de data padrão que não é um valor de data válida no SQL Server.

Foi útil?

Solução

Se uma coluna é anulável no banco de dados da classe resultado terá uma propriedade anulável também.

Por exemplo, se uma tabela Order tem uma coluna Datetime anulável chamado CreatedDate, então a classe Order resultante é algo como isto:

public partial class Order: EntityObject
{
  ...
  private DateTime? _createdDate;
  ...
}

Se o _createdDate não tem valor quando você chamar ObjectContext.SaveChanges() um System.DBNull será automaticamente enviado para o banco de dados como parte de inserção ou atualização de comando.

Espero que isso ajude Alex

Outras dicas

Defina o valor do campo para null. O Entity Framework irá traduzir isso para System.DBNull.

Eu nunca usei entidade-quadro, mas você pode transformar uma variável para um tipo anulável?

algo como

dim entityVar as nullable(of date)

então você pode fazer o = nada e ele vai ficar nada.

mas como eu disse, eu nunca usei entidade-quadro

ao olhar no google descobri que relatório de bug no Microsoft Connect

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