Détendez-vous ou désactivez les contraintes de table lors de l'utilisation de Dapper et Entity Framework?

.net-4.0 dapper edmx entity-framework

Question

Je voudrais mettre un quelque chose comme ceci dataSet1.EnforceConstraints = false; en utilisant l'ORM Dapper.Net et Entity Framework.

J'ai créé les modèles dans VS2010 où une propriété:

    [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();
        }
    }

... lorsque la value est null , j'obtiens une exception de contrainte à StructuralObject.SetValidValue... Comment et où puis-je désactiver cela?

Mon appel de données ressemble à ceci:

    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;
            }
        }
    }

Réponse acceptée

Si vous utilisez des entités basées sur EntityObject générées EntityObject et que vous marquez le champ comme non nullable (votre base de données ne le rend pas nullable), vous ne pouvez pas désactiver cette validation. Le deuxième paramètre de SetValidValue décide si null est autorisé ou non.




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi