尝试执行简单的linq插入查询时发生错误。实体框架5 Linq插入查询:操作无效
异常:由于对象的当前状态,操作无效。
这里是我的LINQ查询:
private void addEntry(string hqname, string hqaddress, string hqcity,
int hqzip, string hqstate, string hqcountry)
{
using (var db = new dbcontext())
{
try
{
var dbObj = new dbObj();
dbObj.HQName = hqname;
dbObj.HQAddress = hqaddress;
dbObj.HQCity = hqcity;
dbObj.HQZip = hqzip;
dbObj.HQState = hqstate;
dbObj.HQCountry = hqcountry;
db.tblName.Add(dbObj);
db.SaveChanges();
}
catch
{
throw new InvalidOperationException();
}
}
}
这里的地方我把这种方法:
addCompanyHeadquarters(tbCompanyName.Text, addressInput.HQAddress, addressInput.HQCity, Convert.ToInt32(addressInput.HQZip), addressInput.HQState, "United States");
堆栈跟踪:
[出现InvalidOperationException:操作无效由于目标的当前状态。] addComp任何总部(字符串hqname,字符串hqaddress,字符串hqcity,Int32 hqzip,字符串hqstate,字符串hqcountry)在 Button3_Click(Object sender,EventArgs e) System.Web.UI.WebControls.Button.OnClick(EventArgs e)+9692746 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)+108 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)+12 System.Web.UI。 Page.RaisePostBackEvent(IPostBackEventHandler sourceControl,字符串eventArgument)15 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection中POSTDATA)35 System.Web.UI.Page.ProcessRequestMain(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)3562
我一直在试图调试一段时间,这个错误是真的把我扔了一个循环。我不确定接下来要看什么。任何提示前进,非常感谢。一些信息:我不得不更新的ID数据库列自动增量,然后后,我改变了edmx
文件StoredGeneratedPattern: True
更新相应的表和列:从叶戈尔Semenenko的意见,我加入改变了例外,我扔给抛出; 扔;: 我的继承人新的堆栈跟踪: 实体类型是不是该机型为当前上下文 的一部分[出现InvalidOperationException:实体类型tblName是不是模型对当前环境的一部分]
System.Data.Entity.Internal.InternalContext.UpdateEntitySetMappingsForType(Type entityType) +196
System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType) +38
System.Data.Entity.Internal.Linq.InternalSet`1.Initialize() +52
System.Data.Entity.Internal.Linq.InternalSet`1.get_InternalContext() +15
System.Data.Entity.Internal.Linq.InternalSet`1.ActOnSet(Action action, EntityState newState, Object entity, String methodName) +64
System.Data.Entity.Internal.Linq.InternalSet`1.Add(Object entity) +108
System.Data.Entity.DbSet`1.Add(TEntity entity) +42
addCompanyHeadquarters(String hqname, String hqaddress, String hqcity, Int32 hqzip, String hqstate, String hqcountry) in
Button3_Click(Object sender, EventArgs e)
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +9692746
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +108
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +12
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +15
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3562
更新ID为自动增量修复它?另外,你是否错过了这个对象上的FK关系? –
将列更新为自动增加不能修复它不幸的是,我将它设置为主键。 – yoprogrammer
实际的异常在途中丢失。我想你必须解决这个问题,所以你可能会做一个修复并部署它。为什么不先从删除try/catch块开始,因为没用?然后你会看到实际的错误。它可能是NULL约束,违反唯一约束等 –