LINQ与HQL (二)

   C# 3.0提供System.Data.Linq.DataContext这么一个非常重要的类型,对LINQ来说;DataContext提供了实体对象与数据对象之间的访问通道;
   public class CustomersCtx : DataContext
   {
       public Table<Customer>  Customers;
       public CustomersCtx(string connString) : base(connString) {.....}
    }
  下面我们看看DataContext和LINQ结合后的强大功能;
   CustomersCtx ctx = new CustomersCtx("数据连接串");
   var  list = from c in ctx.Customers select c;
   var list1 = from c in ctx.Customers where c.ContactorName == '43434'
                    select new {id = c.ID,name = c.ContactorName};

   感觉是不是很简洁,其实现在ASP.NET ENTITY也提供类似的访问方式;
   另外DataContext还提供很多功能,比如日志功能,通过日志我们可以看到LINQ是如何转化为标准SQL的;例如:ctx.log = new StreamWriter("日志文件"):
   在补充一个功能,肯能对写单元测试有用,,就是DataContext提供了Create table 和Delete Table 的能力,所以在单元测试的TestBase里能很有用,(以前用castle 的时候,也是利用castLe类似的功能来初始化数据库)

   除此以外DataContext还提供了与ADO.NET的接口,可以方便使用传统ado.net的数据访问方式访问关系数据库;(类似的做法castle ,nhernate 也有)这两种ORM工具还支持HQL和SQL的访问方式;


    
  

转载于:https://www.cnblogs.com/pojia/archive/2008/03/12/1102582.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值