我想使用Dapper.Net ORM和实体框架设置类似dataSet1.EnforceConstraints = false;
的内容。
我在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;
}
}
}
答案 0 :(得分:1)
如果您使用基于自动生成EntityObject
的实体,并且您将字段标记为不可为空(您的数据库使其无法为空),则无法关闭此验证。 SetValidValue
的第二个参数决定是否允许null。