我有一个使用EF5针对DB2 9.1(z / OS)运行的WPF应用程序。一切正常,除了插入主键是INTEGER(10)字段的地方。
实体将映射属性作为int类型。
private Models.UserInfo GetUserInfo(String emplID, String firstName, String lastName)
{
if (String.IsNullOrEmpty(emplID))
return null;
int _emplID = Convert.ToInt32(emplID.Trim());
try
{
using (var ctx = new Data.TIMSContext())
{
var user = (from u in ctx.Query<Data.Entities.ASNUser>()
where u.EmployeeID == _emplID
select u).FirstOrDefault();
if (user == null)
{
//add user to database
user = new Data.Entities.ASNUser()
{
EmployeeID = _emplID,
FirstName = firstName.Trim(),
LastName = lastName.Trim()
};
ctx.Set<Data.Entities.ASNUser>().Add(user);
ctx.SaveChanges();
}
return new Models.UserInfo()
{
EmployeeID = user.EmployeeID,
DisplayName = String.Format("{0}, {1}", user.LastName, user.FirstName)
};
}
}
catch (Exception e)
{
throw;
}
}
答案 0 :(得分:0)
这可能是您的edmx文件/ EF模型的问题。
如果在模型中将EmployeeID字段定义为自动增量ID,则EF将忽略您设置的值,并将null发送到数据库。但是数据库没有自动增量字段,因此它尝试插入null。