Antecedentes:RIA/EF4 Entidad de propiedad asignada a NO nvarchar NULL - cadena vacía
- Entity Framework 4
- servicios de Silverlight 4
- RIA
- Servidor MSSQL 2008
Tengo una entidad que tiene una propiedad de cadena llamada Descripción.
En la base de datos se asigna al NOT NULL NVARCHAR(200)
.
Problema:
Cuando trato de insertar una nueva fila de esa entidad, esto es lo que hago:
MyExampleEntity entity = new MyExampleEntity()
{
Name = "example",
Description = "" // NOTE THIS LINE!
};
DatabaseContext db = new DatabaseContext();
db.MyExampleEntities.Add(entity);
db.SubmitChanges();
Esto, sin embargo, provoca una excepción diciendo "The Description field is required."
Pregunta:
¿No debería ser el "vacío" string "be simplemente that - una cadena con cero caracteres?
que solo creen Description = null
deben ser tratados como proporcionar ningún valor.
- ¿Por qué mi cadena, que tiene un valor (aunque su longitud es 0), se considera como si hubiera omitido el valor?
- ¿A qué nivel ocurre esta conversión? En RIA, en EF o en MSSQL?
- ¿Hay alguna manera de hacer que una descripción tenga un valor de longitud cero cuando configuro el
Description to ""
y provoco una excepción cuandoDescription = null
(sin ningún valor)?
Funciona, gracias. –
Tenga en cuenta que el atributo '[Required]' puede colisionar con las reglas de FluentValidation si las usa, ya que éstas también pueden agregar el atributo y solo puede tener una instancia del atributo a la vez ([http: // stackoverflow.com/a/5552237/1454265](http://stackoverflow.com/a/5552237/1454265)). Pude sortear esto y permitir cadenas vacías al descartar el atributo '[Required]' de la clase MetadataType y agregar una regla condicional a la validación: 'RuleFor (x => x.Field) .Etc (...) .When (x =>! String.IsNullOrWhitespace (x.Field); ' – user1454265