単純なlinq挿入クエリを実行しようとするとエラーが発生します。Entity Framework 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 System.Web.UI.WebControls.Button.OnClick(のEventArgs e)の9692746 中をbutton3_Click(オブジェクト送信者、のEventArgs電子)にanyHeadquarters(文字列hqname、文字列hqaddress、文字列hqcity、のInt32 hqzip、文字列hqstate、文字列hqcountry) 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
私はこれをしばらくの間デバッグしようとしていましたが、このエラーは本当にループを起こしています。私は次に何を調べるべきか分からない。前進するためのヒントは非常に高く評価されています。 Egor Semenenkoのアドバイスから、私は私が投げる例外を変更し、コメントを追加しました:いくつかの情報は:私は更新がStoredGeneratedPattern: True
それぞれのテーブルやカラムに対してedmx
ファイルを変更した後、私はその後、自動インクリメントとするIDデータベース列を更新しましたスロー;: HERESに私の新しいスタックトレース: エンティティタイプは、現在のコンテキストのためのモデルの一部ではない [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制約、一意制約違反など –