配置文件信息App.config:

数据库IP地址为192.168.2.186 ,数据库名为 Eleven-Six , 用户名 123456,密码654321

<?xml version="1.0" encoding="utf-8" ?>
<configuration><connectionStrings><add name="EfDbContext" connectionString=" Server = 192.168.2.186;Initial Catalog=Eleven-Six;User ID=123456;Password=654321;" providerName="System.Data.SqlClient"/></connectionStrings>
</configuration>

1. 新建类:

   public class Cable{public int CableId { get; set; }public string CableName { get; set; }}

     public class CableLine{public int Id { get; set; }public int CableId { get; set; }public int LineId { get; set; }public string XDescription { get; set; }public string YDescription { get; set; }public string CableLineDescription { get; set; }public double BreakOverUpper { get; set; }public double BreakOverLow { get; set; }}

2. 新建上下文:

    public class EfDbContext:DbContext{public DbSet<Cable> Cables { get; set; }public DbSet<CableLine> CableLines { get; set; }}

2.1 新建 上下文简单工厂类:

    public static class CableInformationOperateFactory{private static EfCableInformationOperate efCableInformationOperate = new EfCableInformationOperate();public static ICableInformationOperate Get(){return efCableInformationOperate;}}

3. 新建 数据操作类EfCableInformationOperate,实现了接口  ICableInformationOperate

3.1 接口:

    public interface ICableInformationOperate{void DeleteCable(int id);void DeleteCable(Cable cable);int AddCable(Cable cable, List<CableLine> cableLines);void UpdateCable(Cable cable);void UpdateCable(List<CableLine> cableLines);void UpdateCable(Cable cable, List<CableLine> cableLines);void UpdateCable();List<Cable> GetCables();Cable GetCable(int cableId);List<CableLine> GetCableLines(int cableId);}

3.2 实现类:

 class EfCableInformationOperate:ICableInformationOperate{private EfDbContext _context = new EfDbContext();public void DeleteCable(int id){var cable = _context.Cables.Where(c => c.CableId == id);_context.Cables.RemoveRange(cable);var lines = _context.CableLines.Where(line => line.CableId == id);_context.CableLines.RemoveRange(lines);_context.SaveChanges();}public void DeleteCable(Cable cable){DeleteCable(cable.CableId);}public int AddCable(Cable cable, List<CableLine> cableLines){_context.Cables.Add(cable);_context.SaveChanges();int cableId = cable.CableId;cableLines.ForEach(line => line.CableId = cableId);_context.CableLines.AddRange(cableLines);_context.SaveChanges();return cableId;}public void UpdateCable(Cable cable){var oldinfor = _context.Cables.Find(cable.CableId);if (oldinfor != null){oldinfor.CableName = cable.CableName;}_context.SaveChanges();}public void UpdateCable(List<CableLine> cableLines){throw new NotImplementedException();}public void UpdateCable(Cable cable, List<CableLine> cableLines){throw new NotImplementedException();}public void UpdateCable(){_context.SaveChanges();}public List<Cable> GetCables(){return _context.Cables.ToList();}public Cable GetCable(int cableId){return _context.Cables.Find(cableId);}public List<CableLine> GetCableLines(int cableId){return _context.CableLines.Where(line => line.CableId == cableId).ToList();}}

4. 测试类:

  public class UnitTest1{/// <summary>/// 添加数据条 测试/// </summary>
        [TestMethod]public void AddTest(){List<CableLine> lines = new List<CableLine>();for (int i = 0; i < 10; i++){lines.Add(new CableLine(){BreakOverLow = i,BreakOverUpper = i + 10,CableLineDescription = i + "cable description",LineId = i,XDescription = i + "xdescription",YDescription = i + "ydescription"});}CableInformationOperateFactory.Get().AddCable(new Cable(){CableName = "名字3"}, lines);}[TestMethod]public void DeleteTest(){CableInformationOperateFactory.Get().DeleteCable(1);}[TestMethod]public void UpdateTest(){CableInformationOperateFactory.Get().UpdateCable(new Cable() { CableId = 3, CableName = "新名字2" });}[TestMethod]public void GetTest(){var operate = CableInformationOperateFactory.Get();foreach (Cable cable in operate.GetCables()){cable.CableName = "qweqw";operate.UpdateCable();}//foreach (CableLine line in CableInformationOperateFactory.Get().GetCableLines(5))//{//    Console.WriteLine(line.CableLineDescription);//}
        }}
}

转载于:https://www.cnblogs.com/pangkang/p/6638611.html

Entity framework 配置文件,实现类,测试类相关推荐

  1. Asp.Net MVC 模型(使用Entity Framework创建模型类)

    Asp.Net MVC 模型(使用Entity Framework创建模型类) 这篇教程的目的是解释在创建ASP.NET MVC应用程序时,如何使用Microsoft Entity Framework ...

  2. Entity Framework 实体框架的形成之旅--为基础类库接口增加单元测试,对基类接口进行正确性校验(10)...

    本篇介绍Entity Framework 实体框架的文章已经到了第十篇了,对实体框架的各个分层以及基类的封装管理,已经臻于完善,为了方便对基类接口的正确性校验,以及方便对以后完善或扩展接口进行回归测试 ...

  3. Entity Framework 的小实例:在项目中添加一个实体类,并做插入操作

    Entity Framework 的小实例:在项目中添加一个实体类,并做插入操作 Entity Framework 的小实例:在项目中添加一个实体类,并做插入操作 1>. 创建一个控制台程序 2 ...

  4. 主攻ASP.NET.4.5 MVC4.0之重生:Entity Framework生成实体类步骤(十三)

    1.新建一个ASP.NET MVC 4.0 项目 2.安装Entity Framework Power Tools 3.Entity Framework- -RepositoryReverse Eng ...

  5. spring 测试类test测试方法

    实例掩码地址为:孔浩组织结构设计 web.xml配置文件: 1 <!-- Spring 的监听器可以通过这个上下文参数来获取beans.xml的位置 --> 2 <context-p ...

  6. springboot(测试类)整合mybatisplus增删改查

    文章目录 下载地址 1.创建springboot项目(Spring Initializer快速创建) 2.配置文件,数据库等 3.配置,策略,实体类 4.增删改查 查询 查询全部 查询-根据id批量查 ...

  7. JUnit3 一次运行多个测试类和进行多次重复测试:使用测试套件和RepeatedTest

    测试套件 如果测试类写到很多,每次要进行测试,难道要重新点击每一个测试类来运行?如果有200个测试类要测试呢? 为了解决这个问题,引入了测试套件(TestSuite). 通过将多个测试放入套件中,一并 ...

  8. 存根类 测试代码 java_常规单元测试和存根–测​​试技术4

    存根类 测试代码 java 我的上一个博客是有关测试代码的方法以及讨论您做什么和不必进行测试的方法的一系列博客中的第三篇. 它基于我使用一种非常常见的模式从数据库检索地址的简单方案: -并且我提出了这 ...

  9. 存根类 测试代码 java_为旧版代码创建存根-测试技术6

    存根类 测试代码 java 任何阅读此博客的人都可能已经意识到,目前我正在开发一个项目,其中包含大量的旧代码,这些旧代码庞大,扩展且编写时从未进行过任何测试. 在使用此遗留代码时,有一个行为非常差的类 ...

  10. XCode中的单元测试:编写测试类和方法(内容意译自苹果官方文档)

    当你在工程中通过测试导航栏添加了一个测试target之后, xcode会在测试导航栏中显示该target所属的测试类和方法. 这一章演示了怎么创建测试类,以及如何编写测试方法. 测试targets, ...

最新文章

  1. CUDA Samples: Image Process: BGR to Gray
  2. oracle cusor游标,ORACLE CURSOR 游标详解
  3. 算法-------二分法查找
  4. SAP 库存物资收发存报表主要思路
  5. 最新的Java SE平台和JDK版本发布计划
  6. 外部中断器1C语言程序,单片机C语言代码:外部中断,按下中断按键LED不亮,LED1正常亮...
  7. kubectl技巧之查看资源列表,资源版本和资源schema配置
  8. 【C/C++9】天气APP:Oracle的虚表/日期/序列,索引/视图/链路/同义词,数据库高可用性
  9. SAP Fiori Elements 框架里 Smart Table 控件的工作原理介绍
  10. hive日志位置(日志定位报错:Failed with exception Unable to move sourcehdfs://namenode/tmp/hive-pmp_bi/h)...
  11. win7下oracle10g安装,专门针对win7下oracle10g安装的详解
  12. Chrome跨域问题
  13. linux文件内上下移动,Linux中有多个查看文件的命令,如果希望在查看文件内容过程中用光标可以上下移动来查看文件内容,则符合要求的那一个命令是( )。...
  14. Springboot读取jar包中的MANIFEST.MF文件内容
  15. 对比科大讯飞,云知声等国内语音识别团队的实力表现如何?
  16. 发布 CodeAuto 代码生成器 2.1.0.461 中英文双语版
  17. python中print的本质_Python之路---函数进阶??
  18. 【记录】Optisystem运行卡死,无法点击关闭、输入变量数值等问题解决方法
  19. 局部(x,y)坐标 转 WGS84经纬度坐标
  20. 记一次云服务器挖矿病毒处理过程

热门文章

  1. Man vs. AI – Six Fields Where Artificial Intelligence Are Surpassing Human Intelligence
  2. 中小企业应该将云存储用于主数据吗?
  3. 利用PHP的VLD查询OPCODE
  4. TuxOnIce! 休眠到硬盘[zt]
  5. ATT与intel汇编格式区分
  6. 通过Callable和FutureTask创建线程
  7. Android studio 的那些坑
  8. [整理]Linux压缩与解压缩命令整理。
  9. IIS中启用ASP并连接Access数据库的解决办法
  10. 新建mavan项目转为web项目