今天讲讲怎么用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表。怎么样很简单吧。篇幅有限,谁想了解多对多请联系我。

转载于:https://blog.51cto.com/leelei/347228

asp.net EF+MVC2实战2相关推荐

  1. 【无私分享:ASP.NET CORE 项目实战】目录索引

    简介 首先,我们的  [无私分享:从入门到精通ASP.NET MVC]   系列已经接近尾声,希望大家在这个过程中学到了一些思路和方法,而不仅仅是源码. 因为是第一次写博客,我感觉还是比较混乱的,其中 ...

  2. 《ASP.NET MVC企业实战》(二) MVC开发前奏

    2019独角兽企业重金招聘Python工程师标准>>> ​ 在上一篇"<ASP.NET MVC企业级实战>(一)MVC开发前奏"中记录了作者介绍的一些 ...

  3. ASP.NET Core Identity 实战(4)授权过程

    这篇文章我们将一起来学习 Asp.Net Core 中的(注:这样描述不准确,稍后你会明白)授权过程 前情提要 在之前的文章里,我们有提到认证和授权是两个分开的过程,而且认证过程不属于Identity ...

  4. 《ASP.NET MVC企业实战》(一) MVC开发前奏

    一.工具和方法 学到了一些没用过的工具和方法: a)删除多余的using指令并排序:一个类头部的using一般会有很多用不到的,在完成类的编写后,可以右键选择"组织using"来删 ...

  5. [转]【无私分享:ASP.NET CORE 项目实战(第十四章)】图形验证码的实现

    本文转自:http://www.cnblogs.com/yuangang/p/6000460.html 目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 很长时间没有来更新博客 ...

  6. ASP.NET Core Identity 实战(3)认证过程

    如果你没接触过旧版Asp.Net Mvc中的 Authorize 或者 Cookie登陆,那么你一定会疑惑 认证这个名词,这太正式了,这到底代表这什么? 获取资源之前得先过两道关卡Authentica ...

  7. 关于《ASP.NET MVC企业级实战》

    大家好,我的书<ASP.NET MVC企业级实战>已经出版啦,感谢大家过去的关注与支持!前言部分,出版的时候漏了部分内容,我这里将其贴出来. 注意:书上的源码下载地址已失效,最新源码下载地 ...

  8. Asp.Net Core 项目实战之权限管理系统(0) 无中生有

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  9. 《ASP.NET MVC 4 实战》----2.3 Guestbook示例应用程序

    本节书摘来自异步社区<ASP.NET MVC 4 实战>一书中的第2章,第2.3节,作者: [美]Jeffrey Palermo , [美]Jimmy Bogard , [美]Eric H ...

最新文章

  1. 搞嵌入式Linux,做底层还是应用?底层要掌握哪些技能?
  2. C#异步批量下载文件
  3. android 包裹内容,Android开发中Bundle用法 包裹数据
  4. 瑞星2009:3大拦截2大防御功能主动遏制木马病毒
  5. android性能测试工具之dumpsys
  6. 使用IntelliJ IDEA和Maven管理搭建+Web+Tomcat开发环境
  7. 条件信息熵的决策表约简
  8. Linux环境下通过gstack命令查看进程的运行堆栈信息
  9. JSP — 小项目【实现登录界面】
  10. Cocos2d-x3.2 持续动作
  11. Python+数据库+前端+Django
  12. 微信公众平台 客服接口-发消息
  13. win10 蓝牙耳机已连接但是耳机仍没有声音,音频仍是扬声器输出问题的出现条件及解决方案
  14. 学校计算机科室管理制度,学校科室管理制度资料.doc
  15. Fiddler模拟网络波动_xing2516_新浪博客
  16. 单载波频域均衡matlab仿真,包括卷积编码维特比译码,矩阵交织,QPSK调制解调,导频插入,MMSE-FDE频域均衡
  17. IDEA自定义模板:快速指定一个数据库映射字段(驼峰生成下划线命名)
  18. 不变初心数 (15 分)
  19. python教程 -- 廖雪峰
  20. C#与数据库访问技术总结(三)之 Connection对象的常用方法

热门文章

  1. WordPress独立资源下载页面插件 基于美化Xydown插件
  2. 365赚钱养猫小程序
  3. C# 使用Task执行异步操作
  4. 使用分页方式读取超大文件的性能试验
  5. 招商银行网站在chrome中 布局出现大问题,如图
  6. 浅谈 PHP 与手机 APP 开发(API 接口开发) 1
  7. Magento中直接使用SQL语句
  8. 动态规划——方格取数(hdu1565)
  9. 每日一题(C语言基础篇)3
  10. 数据结构---function