¿Relájese o deshabilite las restricciones de la tabla al usar Dapper y Entity Framework?

.net-4.0 dapper edmx entity-framework

Pregunta

Me gustaría establecer algo como este dataSet1.EnforceConstraints = false; utilizando el marco ORM y Entity Framework de Dapper.Net.

Creé los modelos en VS2010 donde una propiedad:

    [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
    [DataMemberAttribute()]
    public global::System.String ethnicname
    {
        get
        {
            return _ethnicname;
        }
        set
        {
            OnethnicnameChanging(value);
            ReportPropertyChanging("ethnicname");
            _ethnicname = StructuralObject.SetValidValue(value, false);
            ReportPropertyChanged("ethnicname");
            OnethnicnameChanged();
        }
    }

... cuando el value es null , obtengo una excepción de restricción en StructuralObject.SetValidValue... ¿Cómo y dónde lo apago?

Mi llamada de datos se ve así:

    public DAL.Models.PROFILE GetProfile(int profileID)
    {
        using (IDbConnection connection = OpenConnection("MyDBConnectionString"))
        {
            try
            {

                var profiles = connection.Query<DAL.Models.PROFILE>("SELECT * FROM PROFILES WHERE ID=@ID", new { ID = profileID }); // IEnumerable
                var profile = profiles.First<DAL.Models.PROFILE>();

                return profile;
            }
            catch (Exception ex)
            {
                ErrorLogging.Instance.Fatal(ex);
                return null;
            }
        }
    }

Respuesta aceptada

Si está utilizando entidades basadas en EntityObject autogeneradas y marca el campo como no anulable (su base de datos no lo tiene) no puede desactivar esta validación. El segundo parámetro de SetValidValue decide si null está permitido o no.



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow