Como faço para definir um campo de DBNull na estrutura de entidades
-
03-07-2019 - |
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.
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