/// <summary> /// 给标签节点添加信息节点关联,当用户在树中删除标签节点时,标签节点及其关联的“信息节点关联关系”会删除,但不会删除信息节点本身。 private void AddInfoNodeToLabel() { //var dataObj = labeltree.SelectedItem.NodeData.DataItem as LabelNodeDataInfo; 如此获得的数据对象不是数据库信息选项卡中的标签节点的数据对象 //var accessObj = labeltree.SelectedItem.NodeData.AccessObject as LabelNodeAccess; string labelnodePath = labeltree.SelectedItem.NodeData.DataItem.Path; //查找节点 TreeViewIconsItem nodeNeedToAddInfoNode = curDbInfoTab.LabelViewObj.SuperTree.Nodes.FirstOrDefault(n => n.Path == labelnodePath); var dataObj = nodeNeedToAddInfoNode.NodeData.DataItem as LabelNodeDataInfo; var accessObj = nodeNeedToAddInfoNode.NodeData.AccessObject as LabelNodeAccess; DBInfoNodeInfo infoNodeInfo = new DBInfoNodeInfo() { ModifyTime = DateTime.Now, //Path= curDbInfoTab.CurrentTreeView.SelectedItem.NodeData.DataItem.Path Path = InfoNodeDataInfoObj.Path }; //不加入重复的信息节点 if (dataObj.AttachInfoNodeInfos.IndexOf(infoNodeInfo) == -1) { //创建连接字符串 String EFConnectionString = DALConfig.getEFConnectionString(curDbInfoTab.dbInfoObject.DatabaseFilePath); InfoNodeRepository repository = new InfoNodeRepository(EFConnectionString); //InfoNodeDataInfo obj = SelectedInfoNodeDataObj.DataItem as InfoNodeDataInfo; InfoNodeDB dbobj = repository.GetInfoNodeDBWithoutFileInfosByPath(InfoNodeDataInfoObj.Path); //给标签节点添加标签节点与信息节点的关联 accessObj.AddInfoNodeAssociation(dataObj.Path, infoNodeInfo, dbobj); dataObj.AttachInfoNodeInfos.Add(infoNodeInfo); } }
//public InfoNodeAccess() //{ // repository = new InfoNodeRepository(DALConfig.EFConnectString); //} public InfoNodeAccess(String EFConnectionString) { repository = new InfoNodeRepository(EFConnectionString); }