sql server - C# - Winforms - Entity Framework 6.0 - Instancing Issues -


i'm building little application, supposed our companys password manager. i'm working entity framework 6.0 , have working entity model running. construct works on 3 stages.

group --> product --> password

group contains groupname, groupdescription, defaultgroup.

additionally, refer passwords, form contains attributes. in order make whole form work, save every entry user has made new group before can add attribute. (if group exists, no new group created, naturally.) otherwise there foreign key conflict. yet every time i'm trying this, error occurs @ _db.savechanges(), telling me new transaction not possible, since other threads open in session.

this current code of form:

    public partial class form1 : form     {         #region prototypes         entities _db = new entities();         public sp_group_result inserted_group;         public int groupid = 0;         public groupattributes currentitem;         public vwgroupperuser group;         list<vwselectedusers> userlist;         public list<vwgroupattributes> gattrlist;          #endregion         #region open form         public form1()         {             initializecomponent();             groupid = 0;             initform();         }          public form1(int grid)         {             initializecomponent();             groupid = grid;             initform();         }          public void initform()         {             updategroup();             updateusers();             updateattributes();         }          public int groupid         {             { return groupid; }             set { groupid = groupid; }         }         #endregion         #region submit populated fields         private void button1_click(object sender, eventargs e)         {             savegroup();              this.dialogresult = dialogresult.ok;             this.close();         }         #endregion         #region close window         private void button2_click(object sender, eventargs e)         {             this.close();         }         #endregion         #region ask user if want's complete editing groups , add attributes , add attribute         private void button3_click(object sender, eventargs e)         {             //save groupid later             savegroup();             updategroup();             updateusers();              // add attribute             using (entities _db1 = new entities())             {                 _db1.sp_groupattributes(0, groupid, "neuer parameter", "", "", 0);             }             updateattributes();         }         #endregion         private void savegroup()         {             if(group == null)             {                 _db.sp_group(0, textbox1.text, textbox2.text, checkbox1.checked);                 _db.savechanges();             }             else             {                 group.groupname = textbox1.text;                 group.description = textbox2.text;                 group.defaultgroup = checkbox1.checked;                 _db.savechanges();             }             updategroup();              (int = 0; < userlist.count; i++)             {                 userlist[i].selected = checkedlistbox1.getitemchecked(i);             }               if (checkbox1.checked == true)             {                 _db.sp_default_group(groupid, true);             }              _db.savechanges();         }         private void deleteattribute()         {             if(attributeview.selectedrows.count > 0)             {                 gattrlist[attributeview.selectedrows[0].index].name = "";                 _db.savechanges();                 updateattributes();             }         }          private void button4_click(object sender, eventargs e)         {             deleteattribute();         }          private void updategroup()         {             try             {                 group = (from u in _db.vwgroupperuser u.groupid == groupid select u).single();                 textbox1.text = group.groupname;                 textbox2.text = group.description;                 checkbox1.checked = convert.toboolean(group.defaultgroup);             }             catch             {                 textbox1.text = "neue kategorie";                 textbox2.text = "neue kategorie-beschreibung";                 checkbox1.checked = false;             }             _db.savechanges();         }          private void updateusers()         {             // populate checkedlistbox vwselectedusers             userlist = (from u in _db.vwselectedusers u.groupid == groupid select u).tolist();             checkedlistbox1.datasource = userlist;             checkedlistbox1.displaymember = "username";             checkedlistbox1.valuemember = "userid";              (int = 0; < userlist.count; i++)             {                 checkedlistbox1.setitemchecked(i, convert.toboolean(userlist[i].selected));             }         }          private void updateattributes()         {             attributeview.datasource = null;             gattrlist = (from u in _db.vwgroupattributes u.groupfsid == groupid select u).tolist();             attributeview.datasource = gattrlist;             attributeview.columns[0].visible = false;             attributeview.columns[1].headertext ="parameter-name";             attributeview.columns[2].visible = false;             attributeview.columns[3].headertext ="parameter-position";             attributeview.columns[4].headertext = "parameter-format";             attributeview.columns[5].headertext = "parameter-tooltip";             attributeview.allowusertoaddrows = true;         }      } } 

the problem occurs on row 111. i'm pretty sure it's because created new entity instance there, using it's supposed dropped after stored procedure executed, isn't it?


Comments

Popular posts from this blog

python - Selenium remoteWebDriver (& SauceLabs) Firefox moseMoveTo action exception -

html - How to custom Bootstrap grid height? -

angular - Copying node modules to wwwroot AspNetCore -