首页 > 代码库 > ORM操作 20141128

ORM操作 20141128

ORM
O-Object对象
R-Relation关系
M-Mapping映射

O -- M -- R

表名-类名
列名-属性名
表的关系-类的成员对象

LinQ 集成化查询语言 SQL-结构化查询语言
LinQ包括:LinQ to SQL,LinQ to Object,LinQ to DataSet,LinQ to Entity

LinQ to SQL
第一步:建立LinQ2SQL类
第二步:实例化上下文对象。
第三步:操作

一、增:
1.造对象。
Info data = http://www.mamicode.com/new Info();
data.Code = "p211";
data.Name = "周青";
data.Sex = false;
data.Nation = "N001";
data.Birthday = new DateTime(1990, 1, 2);

2.在上下文中注册上面新造的对象。
context.Info.InsertOnSubmit(data);

3.提交
context.SubmitChange();

二、删:
MyDBDataContext context = new MyDBDataContext();
//1.找
var q = context.Info.Where(p => p.Code == "p003");

if (q.Count() > 0)
{
Info data = http://www.mamicode.com/q.First();
//2.注册
context.Work.DeleteAllOnSubmit(data.Work);
context.Family.DeleteAllOnSubmit(data.Family);
context.Info.DeleteOnSubmit(data);
//3.提交
context.SubmitChanges();
}
三、改:
1.找
2.改
3.提交
四、查:
查询所有
MyDBDataContext context = new MyDBDataContext();
//所有人员
var q = context.Info;
//显示
foreach(Info data in q)
{
//data.Nation1:当前人员对应的民族对象。
Console.WriteLine(data.Name+"\t"+data.Nation1.Name);
//data.Work:当前人员对应的工作记录集合
foreach (Work work in data.Work)
{
Console.WriteLine("\t"+work.Firm+"\t"+work.Depart);
}
}
根据主键查询
var q = from p in context.Info where p.Code == "p211" select p;
var q = context.Info.Where(p => p.Code == "p211").Where(p => p.Nation1.Name == "汉族"); //Lambda表达式(最最简化的函数)
var q = context.Info.Where(p => p.Code == "p211" && p.Nation1.Name=="汉族");
以上查询默认返回的都是集合。

查询主键对象:
var q = context.Info.Where(p => p.Code == "p211"); //默认返回的是集合
if (q.Count() > 0) //看看集合中是否查出数据来了
{
Info data = http://www.mamicode.com/q.First(); //取第一个对象出来
Console.WriteLine(data.Nation1.Name + data.Name);
}

ORM操作 20141128