Linq to SQL用法(查询)

先啰嗦几句:Linq 的出现给我们c#开发带来了很大的方便,一般我们会用EF结合Linq+Lambda 表达式 在aps.net 或者aps.net MVC中很方便的快捷的开发出来

一个系统或者一个功能,只有用过了才知道有多方便,此技术的出现后把基于平台开发或者代码生成器等快速开发的公司优势降到最低点。

因为EF目前有些数据库不支持,比如sql Lite小型数据库不支持EF ,但是我们可以用Linq to SQL来解决这个问题了。能用EF的就用EF,不能用的用Linq to SQL。

下面我做一个完成的Linq to SQL实例,讲解很详细,希望能帮到你。

第1步、最简单的数据库结构与内容,

                                                                                 Customer表如下:

CustomerID Name                      City                      
1 客户1 北京
2 客户2 上海
3 客户3 广州

第2步、Linq to SQL需要自己建一个类来把数据表和实体对象映射关联起来(实体和数据库之间的桥梁,那么首先我们需要定义映射到数据表的实体)

 [Table(Name = "Customer")]  //此句是必写的,表示Customer类是表了,Name = "Customer"可有可无,如果类名和数据表名相同直接写[Table] ,

                                             //如果类名和表名不同就需要指定Name = "Customer",引号里的是真实的表名,类名可以随便起名,最好类名和表名相同。

public class Customer    

{        

  [Column(IsPrimaryKey = true)]     //   CustomerID是数据表的主键字段

  public string CustomerID { get; set; } 

  [Column(Name = "Name")]     // ContactName属性表示数据表中Name字段 , 

  public string ContactName { get; set; }

  [Column]        //[Column]是必须写的,这个表明City属性就是数据表中City的字段(类名和表名相同)就不用写(Name = "xxx"),但是[Column]必写

  public string City { get; set; }    

}

这个Customer 类我解释的很详细吧,呵呵,有点罗嗦,这个其实就是Linq to SQL必须做的一件事,手动把数据表映射成类,EF是自动完成的,就这么简单

下面就是Linq语法做的事情了,我们在一个页面上放一个GridView控件,把上面表中的三条记录展现出来,看看用Linq给我们省了多少代码量。

第3步、新建一个asp.net页面

        页面代码:
        <asp:GridView ID="GridView1" runat="server">
        </asp:GridView>
        cs代码:

        protected void Page_Load(object sender, EventArgs e)
        {
            DataContext ctx = new DataContext("server=.;database=ResumeExercise;uid=sa;pwd=sa");//数据库连接串
            Table<Customer> Customers = ctx.GetTable<Customer>();//此句就是体现出Linq to SQL的强大了,直接开始从数据库中提取数据了,哈哈
            GridView1.DataSource = from c in Customers select new { 顾客ID = c.CustomerID, 顾客名 = c.ContactName, 城市 = c.City };//Linq语法
            GridView1.DataBind();//常规绑定
        }

第4步、按下F5运行看看效果吧。

 

 

你可能感兴趣的:(LINQ)