使用Dapper和Entity Framework時放鬆或禁用表約束?

.net-4.0 dapper edmx entity-framework

我想設置一個類似這樣的dataSet1.EnforceConstraints = false;使用Dapper.Net ORM和實體框架。

我在VS2010中創建了一個屬性:

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

...當valuenull ,我在StructuralObject.SetValidValue...處得到一個約束異常。如何以及在何處關閉此功能?

我的數據調用如下所示:

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

一般承認的答案

如果您使用自動生成的基於EntityObject的實體並且您將字段標記為不可為空(您的數據庫使其不可為空),則無法關閉此驗證。 SetValidValue的第二個參數決定是否允許null。



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因