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
Post a Comment