Entity framework 配置文件,实现类,测试类
2024-08-31 22:39:36
配置文件信息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);
//}
} }
}
最新文章
- Linux Kernel 3.11.4/3.10.15/3.4.65/3.0.99
- 设置窗体透明C#代码
- 虚拟机ping不通主机,但是主机可以ping通虚拟机(转载)
- poj 2299 树状数组求逆序对数+离散化
- hdu1875
- VmWare问题解决(网络变更后虚拟主机无法上网)
- hdu 4579 博弈+区间dp
- php实现文件夹下的文件读取功能
- Eclipse开启Mybatis-config.xml配置文件智能提示
- 今天重装系统后,Wdows更新提示“windows update当前无法检查更新,因为未运行服务。您可能需要重新启动计算机”
- DHCP服务的部署和配置
- windows环境在本地配nginx
- 使用composer遇到的坑
- Gson将字符串转map时,int默认为double类型
- 爬虫----爬虫请求库requests
- 《JavaScript设计模式与开发》笔记 5.关于正确写一个闭包
- spring boot 与 thymeleaf (2): 常用表达式
- django—xadmin中集成富文本编辑器ueditor
- 「Vue」路由
- 删除pdf文件所有超链接
热门文章
- C语言实现字符串截取函数left、mid和right
- Hadoop1.2.1伪分布模式安装指南 分类: A1_HADOOP 2014-08-17 10:52 1346人阅读 评论(0) 收藏
- 【Solr专题之九】SolrJ教程 分类: H4_SOLR/LUCENCE 2014-07-28 14:31 2351人阅读 评论(0) 收藏
- UUIDUtils工具类
- STL map 按key值和按value值排序
- .Net Core Socket 压力测试
- 【42%】【hdu1166】排兵布阵(树状数组解法&&线段树解法)
- c++11之初始化列表
- 使用ant编译项目技能
- VS2012经常使用的快捷方式完成最全面