在java平台上,ORM这一块Hiberante是相当的.但是在谈到.NET平台.ORM框架就有些不一样了.Nhibernate,Nbeat和Castel,以及我要说的linQ to Sql。
Tosql是微软自己的产品。现在用的或许很少了,但是如果做一个中小型的项目,开发和部署还是很好的,不必考虑第
三方库。但是Tosql毕竟是直接面对数据库的。这个操作我有些用不惯,这里就简单介绍了。
要想使用Linq to Sql,实现需要建立好数据库。
Step1 建立LINQ to SQL Classes文件
在实体层中选择添加新项 LinQ to SQL类,并命名。
Setp2建立数据库连接生产代码
VS视图中打开是服务资源管理,添加connection连接。填写服务器名称与数据库名称。我这里是本地就用window
验证了
打开刚才创建的 LinQ toSql文件。将数据中的表托动态文件上
保存后ORM映射就完成了,这里没有XML文件,所以相对NH简单,但是也存在隐患。修改就难了。
Step3操作数据
这里我就以控制台操作了。 做3个实例,分别对应到添加单条数据,删除集合,以及查询
添加
public static void Add()
{
//声明实体
Commodity commidity = new Commodity
{
Code=Guid.NewGuid().ToString(),
CommodityName="月饼",
CommodityPrice=500,
CommodityType="2"
};
Console.WriteLine("=----begin add commidity");
using(DataClasses1DataContext bd= new DataClasses1DataContext())
{
bd.Log=Console.Out;//控制台输出
bd.Commodity.InsertOnSubmit(commidity);//调用tosql的方法
bd.SubmitChanges();事务机制被封装到SubmitChanges方法内
Console.WriteLine("----end add commidity");
}
新东西到没有什么
删除(集合)
public static void Delete()
{
Console.WriteLine("-----------begin delete all commidity");
using (DataClasses1DataContext bd = new DataClasses1DataContext())
{
bd.Log = Console.Out;
bd.Commodity.DeleteAllOnSubmit(bd.Commodity.Where(p => p.CommodityName == "月饼"));//删除为查询到的集合实体集,
bd.SubmitChanges();
}
Console.WriteLine("------------end Delete commidity");
}
我们看打印的sql语句是以and的形式连接的
查询
再看最重要的查询,说到查询,就得和LinQ to Object联系起来了,这里的查询如出一辙,写法也是相同的。
public static List<Commodity> select()
{
//务必先实例化数据集db
DataClasses1DataContext db= new DataClasses1DataContext();
//集合形式
List<Commodity> commiditys = db.Commodity.ToList();
//条件形式
List<Commodity> commdityWhere=db.Commodity.Where(p => p.CommodityName == "水").ToList();
//查询与选择
var commodityWhereSel = db.Commodity.Distinct().Where(p =>p.CommodityName == "月饼").Select(a => a.CommodityPrice);
//选择
List<string> commidityName=db.Commodity.Select(p => p.CommodityName).ToList();
return commdityWhere;
}
操作与 To Object是一样的,细心的你是否发现 只不多这里不再是传递集合数据了呢,而是db.表名称。
总结
以上是LinQ to Sql基本的操作,只在查询中添加了简单的条件限制,我认为是操作中常用的,当然了还有排序等。虽然本人并不善用to Sql,还是希望对入门的同学们有所启发。