最近尝试将aps.net网站项目转换成asp.net应用程序,发现ef需升级到ef6。
遂删掉原先的edmx文件,重新生成edmx文件,再将addobject、deleteobject替换为add、remove。
查询、删除没问题,就是新增、修改,保存时出错:
System.NullReferenceException
HResult=0x80004003
Message=未将对象引用设置到对象的实例。
Source=<无法计算异常源>
StackTrace:
<无法计算异常堆栈跟踪>
修改的代码如下:
Dim db As New payEntities
Dim product As bs_Users = db.bs_Users.Where(Function(n) n.UserID = uid).FirstOrDefault()
product.LastLoginTime = Date.Now
db.SaveChanges()
查看上述代码中的product,发现有多个异常提示,如:
IsValid = “product.IsValid”引发了类型“System.Web.HttpException”的异常
CodePage = “product.CodePage”引发了类型“System.Web.HttpException”的异常
上述代码在之前ObjectContext模式下正常运行。
我又发现另一个地方的修改保存是成功的,代码如下:
Dim product = db.b_BUDGET.Where(Function(n) n.version_id = id And n.budget_item_id = item)
For Each p In product
p.amount = CType(ht.Item(p.period), Decimal)
Next
db.SaveChanges()