zoukankan      html  css  js  c++  java
  • Entity framework 配置文件,实现类,测试类

    配置文件信息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);
                //}
            }
    
        }
    }
  • 相关阅读:
    Linux命令应用大词典-第11章 Shell编程
    Kubernetes 学习12 kubernetes 存储卷
    linux dd命令
    Kubernetes 学习11 kubernetes ingress及ingress controller
    Kubernetes 学习10 Service资源
    Kubernetes 学习9 Pod控制器
    Kubernetes 学习8 Pod控制器
    Kubernetes 学习7 Pod控制器应用进阶2
    Kubernetes 学习6 Pod控制器应用进阶
    Kubernetes 学习5 kubernetes资源清单定义入门
  • 原文地址:https://www.cnblogs.com/pangkang/p/6638611.html
Copyright © 2011-2022 走看看