配置文件信息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 = ; i < ; i++)
{
lines.Add(new CableLine()
{
BreakOverLow = i,
BreakOverUpper = i + ,
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();
} [TestMethod]
public void UpdateTest()
{
CableInformationOperateFactory.Get().UpdateCable(new Cable() { CableId = , 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);
//}
} }
}

最新文章

  1. Linux Kernel 3.11.4/3.10.15/3.4.65/3.0.99
  2. 设置窗体透明C#代码
  3. 虚拟机ping不通主机,但是主机可以ping通虚拟机(转载)
  4. poj 2299 树状数组求逆序对数+离散化
  5. hdu1875
  6. VmWare问题解决(网络变更后虚拟主机无法上网)
  7. hdu 4579 博弈+区间dp
  8. php实现文件夹下的文件读取功能
  9. Eclipse开启Mybatis-config.xml配置文件智能提示
  10. 今天重装系统后,Wdows更新提示“windows update当前无法检查更新,因为未运行服务。您可能需要重新启动计算机”
  11. DHCP服务的部署和配置
  12. windows环境在本地配nginx
  13. 使用composer遇到的坑
  14. Gson将字符串转map时,int默认为double类型
  15. 爬虫----爬虫请求库requests
  16. 《JavaScript设计模式与开发》笔记 5.关于正确写一个闭包
  17. spring boot 与 thymeleaf (2): 常用表达式
  18. django—xadmin中集成富文本编辑器ueditor
  19. 「Vue」路由
  20. 删除pdf文件所有超链接

热门文章

  1. C语言实现字符串截取函数left、mid和right
  2. Hadoop1.2.1伪分布模式安装指南 分类: A1_HADOOP 2014-08-17 10:52 1346人阅读 评论(0) 收藏
  3. 【Solr专题之九】SolrJ教程 分类: H4_SOLR/LUCENCE 2014-07-28 14:31 2351人阅读 评论(0) 收藏
  4. UUIDUtils工具类
  5. STL map 按key值和按value值排序
  6. .Net Core Socket 压力测试
  7. 【42%】【hdu1166】排兵布阵(树状数组解法&&线段树解法)
  8. c++11之初始化列表
  9. 使用ant编译项目技能
  10. VS2012经常使用的快捷方式完成最全面