我想設置一個類似這樣的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();
}
}
...當value
為null
,我在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。