linqToSql之联合主键的运用
来源:互联网 发布:宏业软件官方电话 编辑:程序博客网 时间:2024/05/10 20:03
多个关联表联合查询时,如何决定主键,以及各表主键如何运用
var result = from ugu in eDataContext.UserGroupUser
join us in eDataContext.User on ugu.UserID equals us.UserID
join ug in eDataContext.UserGroup on ugu.UserGroupID equals ug.UserGroupID
select new { ID = ugu.ID + "_" + us.UserID, UserPWD = us.UserPWD, UserGroupID = ugu.UserGroupID, UserID = us.UserID, UserName = us.UserName, UserGroupName = ug.UserGroupName, IsEnabled = us.IsEnabled };
做两表修改提交时,数据库表要求为不能为空,实体中可以为空也必须设置为true,
eDataContext.User.First 方法中的条件必须为该表主键
以 联合主键作为AspxGridview的keyfileName后,做修改操作时,可以截取字符串来获取表的主键 //ID -- UserGroupUser
string strId = e.Keys["ID"].ToString();
int startIndex = strId.IndexOf("_");
strId = strId.Substring(startIndex + 1);
int intUserId = Convert.ToInt32(strId);
具体代码如下
protected void gvUser_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e)
{
//UserId -- User
string strUserId = e.Keys["ID"].ToString();
int endIndex = strUserId.IndexOf("_");
strUserId = strUserId.Substring(0, endIndex);
int id = Convert.ToInt32(strUserId);
//ID -- UserGroupUser
string strId = e.Keys["ID"].ToString();
int startIndex = strId.IndexOf("_");
strId = strId.Substring(startIndex + 1);
int intUserId = Convert.ToInt32(strId);
//ASPxGridView中获得的控件
ASPxTextBox currentText = ((ASPxGridView)sender).FindEditFormTemplateControl("txtUserName") as ASPxTextBox;
ASPxTextBox UserPWD = ((ASPxGridView)sender).FindEditFormTemplateControl("txtUserPWD") as ASPxTextBox;
ASPxComboBox currentBox = ((ASPxGridView)sender).FindEditFormTemplateControl("cboUserGroup") as ASPxComboBox;
//查询本条的UserGroupUser表记录
Casagroup.Entities.UserGroupUser userGroupUser = eDataContext.UserGroupUser.First(c => c.ID == id);
//此 Value 为 ASPxComboBox的属性,而非页面绑定的Value='<%# Bind("UserGroupName") %>', 是专用来显示相应用户组的
string v = (string)currentBox.Value;
userGroupUser.UserGroupID = int.Parse(v);
//查询本条的User表记录
Casagroup.Entities.User user = eDataContext.User.First(c => c.UserID == intUserId);
user.UserName = currentText.Text.Trim();
user.UserPWD = _common.EncryptToMD5(UserPWD.Text.Trim());
//同步修改
eDataContext.SubmitChanges();
e.Cancel = true;
this.gvUser.CancelEdit();
BindUserInfo();
}
- linqToSql之联合主键的运用
- 联合主键的使用
- Hibernate的联合主键
- hibernate的联合主键
- JPA 的联合主键
- Mysql的联合主键
- Mysql的联合主键
- hibernate的联合主键
- 2.Hibernate之联合主键
- Hibernate中id的table生成策略之联合主键
- Java学习之道:hibernate联合主键的创建方式
- oracle 主键删除,联合主键的创建
- JPACompositePK联合主键的操作
- ssh联合主键的配置
- JPA联合主键的使用
- Hibernate联合主键的使用
- Hibernate 联合主键的设置
- mysql 联合主键的作用
- Windows 下安装配置openldap
- 使用myeclipse集成struts,hibernate,spring的一个示例程序
- 单个mdf文件恢复数据库小记
- Spring bean.xml location
- IT人不要一直做技术
- linqToSql之联合主键的运用
- sed在日常工作中的使用总结
- rhel4下手把手安装mplayer
- 3.1.2 事件驱动的处理机制
- 如何在AspGridView模板中的加入RadioButtList 控件
- 嵌入式系统开发的模式与流程
- 请问这个自动补全那里有错
- hibernate 学习之第六篇
- Flex 开发架构渐变