asp.net EF+MVC2实战2

简介:
今天讲讲怎么用EF建立实体之间的对应关系,以及对应的数据库操作,首先看看实体,这个也是项目中碰到的问题。
FUNC_SS_MODULE表有连个关系,一个是自身对应关系,一个是和SS_FUNC的对应关系。那么接下来我们看看这个自身一对多和外部一对多是怎么建立的。
先看看自身一对多,FUNC_SS_MODULE表中有两个字段C_MODUL_ID和C_FATHERID,我不用说,大家都能才出来一个是子模块一个是父模块。看看数据表
看见了吧,废话不多说,我们看看关系的建立
ok,我们再看看它们的依赖关系
就这么简单,建成了自身的一对多关系。即一个C_FATHER_ID对应多个C_MODULE_ID。看看程序是怎么实现和运用的。因为SubModule是一个集合
所以我们得到一个父Id的时候,根据父ID我们就能轻而易举的获取父Id对应的所有子Id。
List<Func_SS_MODUL> subModule =  new List<Func_SS_MODUL>(ssModul.SubModule);
其中ssModul是父模块对象。通过这种方式我们就得到了子模块,无需编程根据父模块去找子模块,这就是关系的方便之处。接下来我们再看看外部一对多。
再看看依赖关系
看看程序是怎么实现的。
if (funcList.Count == 0) 
                                { 
                                        ssNewFunc.C_FUNC_ID = Guid.NewGuid().ToString().Replace( "-",""); 
                                        ssNewFunc.C_FUNC_TP = ssFuncTp.C_FUNCTP; 
                                        ssNewFunc.C_FUNC_TPNM = ssFuncTp.C_FUNCTP_NAME; 
                                        ssNewFunc.C_LASTMODIFIER =  base.GetSession().C_USER_ID; 
                                        ssNewFunc.C_OWNED_DEPT =  base.GetSession().C_ORGA_ID; 
                                        ssNewFunc.C_OWNER =  base.GetSession().C_USER_ID; 
                                        ssNewFunc.D_CREATE_DATE = DateTime.Now; 
                                        ssNewFunc.D_LASTMODIFY = DateTime.Now; 
                                         string cModuleId = ssFunc.C_MODUL_ID.Equals("") ? CONS_ROOT_ID : ssFunc.C_MODUL_ID; 
                                        ssNewFunc.Func_SS_MODUL = funcEntities.SS_MODUL.First(m => m.C_MODUL_ID == cModuleId); 
                                        funcEntities.AddToSS_FUNC(ssNewFunc); 
                                        funcEntities.SaveChanges(); 
                                        strJson =  "{suc:1,msg:'保存模块功能成功'}"
                                        log.Info( "保存模块功能成功"); 
                                         return Json(strJson); 
                                }

通过指定Func_SS_MODUL 我们在保存ssNewFunc的时候,系统会根据关系自动将对应的模块Id保存到SS_FUNC表。怎么样很简单吧。篇幅有限,谁想了解多对多请联系我。



本文转自 BruceAndLee 51CTO博客,原文链接:http://blog.51cto.com/leelei/347228,如需转载请自行联系原作者


相关文章
|
6月前
|
开发框架 JSON JavaScript
ASP.NET Core3.1实战教程---基于Jquery单文件上传
ASP.NET Core3.1实战教程---基于Jquery单文件上传
81 0
|
2月前
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
43 7
|
3月前
|
开发框架 .NET 数据库连接
闲话 Asp.Net Core 数据校验(三)EF Core 集成 FluentValidation 校验数据例子
闲话 Asp.Net Core 数据校验(三)EF Core 集成 FluentValidation 校验数据例子
|
2月前
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
61 0
|
3月前
|
开发框架 前端开发 .NET
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
49 0
|
3月前
|
存储 开发框架 .NET
ASP.NET Web Api 使用 EF 6,DateTime 字段如何取数据库服务器当前时间
ASP.NET Web Api 使用 EF 6,DateTime 字段如何取数据库服务器当前时间
|
3月前
|
开发框架 前端开发 安全
ASP.NET MVC 如何使用 Form Authentication?
ASP.NET MVC 如何使用 Form Authentication?
|
3月前
|
开发框架 .NET
Asp.Net Core 使用X.PagedList.Mvc.Core分页 & 搜索
Asp.Net Core 使用X.PagedList.Mvc.Core分页 & 搜索
129 0
|
6月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
195 0
|
5月前
|
SQL 开发框架 .NET
(20)ASP.NET Core EF创建模型(必需属性和可选属性、最大长度、并发标记、阴影属性)
(20)ASP.NET Core EF创建模型(必需属性和可选属性、最大长度、并发标记、阴影属性)