Não é possível inserir o valor NULO, apesar de coluna permite null
-
12-12-2019 - |
Pergunta
Eu estou testando andaime com o Entity Framework em Asp.Net MVC 4 (seguindo este artigo).Eu fazê-lo funcionar bem, exceto que, embora o meu domínio permite que o objecto nulo em um campo e o campo do banco de dados permite null recebo a mensagem de erro:
Não é possível inserir o valor NULL na coluna 'IsSuccessful', tabela 'MyTestProject.Persistência.TestContext.dbo.Previsão";a coluna não permite valores nulos.Falha de ATUALIZAÇÃO.A instrução foi finalizada.
Meu objeto de domínio parecido com este:
public class Prediction
{
[Key]
public int Id { get; set; }
[Required]
public string Title { get; set; }
[Required]
public string Description { get; set; }
public bool? IsSuccessful { get; set; }
}
A página da web gerada mostra IsSuccessful como uma caixa de lista pendente com opções NotSet, Verdadeiro e Falso.No banco de dados da coluna IsSuccessful permite nulo.Ainda recebo a mensagem de erro.Tudo funciona bem, se eu escolher Verdadeiro ou Falso (ele é salvo corretamente no banco de dados), mas não quando eu selecionar NotSet.
Certamente deve haver uma maneira de contornar isso?
Alguns detalhes:
- O Visual Studio 2012 RC
- Asp.Net MVC 4
- EntityFramework.dll versão 5.0.0.0
Solução
Essa mensagem de erro, parece que está vindo diretamente do SQL Server.Se o servidor diz que a coluna é não nulo, então a coluna não é nulo.Ele sabe melhor do que ninguém, depois de tudo.
Agudos verificar que a coluna é realmente nulo no banco de dados.Considere também:
- são, talvez, olhando para um banco de dados diferente, com um pouco diferente do esquema?i.e.um que não teve o correto scripts DDL aplicada (realmente feito facilmente)
- são, talvez, olhando para um diferente objeto na mesma base de dados?Em particular, são, talvez, olhando para
Halvard.Prediction
, onde-como o código está olhandodbo.Prediction
?