不能在DB2 w/ EF5上插入行
本文关键字:插入 EF5 DB2 不能 | 更新日期: 2023-09-27 18:02:13
我有一个使用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;
}
}
这可能是您的edmx文件/EF模型的问题。
如果EmployeeID字段在模型中被定义为一个自动递增的id,那么EF将忽略您设置的值,并且null将被发送到数据库。但是数据库没有自动增量字段,所以它尝试插入null