zero0r1

导航

LINQ 基本介绍

LINQ
Q1:什么是 LINQ to ADO.NET:
他是.NET 4.5推出的重要技术之一.
 
Q2:什么是 LINQ to DataSet:
提供对DataSet, DataTable进行查询.
LINQ to DataSet 基于并使用现有的ADO.NET 2.0 体系结构生成.ADO.NET 主要负责把数据读入
DataSet中, LINQ to DataSet 查询在DataSet 和 DataTable 对象缓存的数据.
 
Q3:什么是LINQ to SQL:
通过LINQ对象模型直接与数据库进行数据交互, 比如查询,更改,新增.
LINQ to SQL 是 ADO.NET系列技术中的一部分,他基于有ADO.NET提供程序模型提供的服务.
LINQ to SQL 中 ADO.NET 提供程序将查询的结果作为DataReader返回
,然后提供程序将ADO.NET结果转换为用户对象的IQueryable集合.
并对IQueryable进行查询,返回查新结果.
 
SQL查询流程图
应用程序 LINQ to SQL ADO.NET
LINQ查询=> SQL命令=> DataAdapter
DataCommand
DataConnection
    数据库
   
查询结果<= 对象集合<= DataSet
DataReader
 
 
 
 
 
 
 
 
IQueryable<T> 接口是 LINQ to SQL 中使用到的主要接口,他是通过继承IEnumerable<T>.
IQueryable<T> 的成员和IEnumerable<T>相同
 
Q4:如何使用LINQ 查询 DataSet 和 DataTable 的数据?
//查询表达式语法
// Fill the DataSet.
    DataSet ds = new DataSet();
    ds.Locale = CultureInfo.InvariantCulture;
    FillDataSet(ds);

    DataTable products = ds.Tables["Product"];

    IEnumerable<DataRow> query =
            from product in products.AsEnumerable()
            select product;

    Console.WriteLine("Product Names:");
    foreach (DataRow p in query)
    {
         Console.WriteLine(p.Field<string>("Name"));
    }

 

 
//基于方法的查询语法
// Fill the DataSet.
    DataSet ds = new DataSet();
    ds.Locale = CultureInfo.InvariantCulture;
    FillDataSet(ds);

    DataTable products = ds.Tables["Product"];

    var query = products.AsEnumerable().
        Select(product => new
        {
            ProductName = product.Field<string>("Name"),
            ProductNumber = product.Field<string>("ProductNumber"),
            Price = product.Field<decimal>("ListPrice")
        });

    Console.WriteLine("Product Info:");
    foreach (var productInfo in query)
    {
         Console.WriteLine("Product name: {0} Product number: {1} List price: ${2} ",
         productInfo.ProductName, productInfo.ProductNumber, productInfo.Price);
    }

 

Q5:如何使用DataTableExtensions类成员进行LINQ查询:

获取和设置数据记录字段的值:

Field<T>; 提供DataRow 中的每个列值的强类型访问.

SetField<T>; 为DataRow 中的指定列设置一个新值.

AsEnumerable(); 返回一个IEnumerable<DataRow>对象, 此对象可以用在LINQ表达式或者方法查询中.

AsDataView(); 创建并返回LINQ 的 DataView 对象.

CopyToDataTable(); 在给输入 IEnumerable<T>对象的情况下, 返回包含 DataRow 对象副本的DataTable.

 

Q6:如何通过对象关系设计器创建对象关系模型?

1, 对象关系设计器

2, SQLMetal代码生成工具

3, 代码编辑器

 

Q7:如何通过 DataContext 类获取数据库记录:

要利用LINQ 通过 LINQ to SQL 类查询数据库数据,有一下几步操作.

1, 在已有数据库的基础上, 为项目添加LINQ to SQL对象模型.

2, 更具对象模型, 获取对应的 DataContext 类. 该类是应用程序和数据之间的桥梁, 它提供数据库的查询, 提交修改的等操作.

3, 通过 DataContext 对象获取对应的数据源, 根据对象模型的不同, 数据源保存的属性不同.

4, 便捷 LINQ 查询, 对数据源进行查询.

 

Q8:如何通过 DataContext 累修改并提交数据库记录:

通过 DataContext 类修改数据,有一下几步操作.

1, 创建关系模型, 创建和数据库对应的DataContext 类型,可被继承

2, 通过 DataContext 类提供的数据表对象获取数据记录, 如前面介绍的DemoDataContext类的Demo 属性, 同时修改数据库记录的数据.

3, 通过 DataContext 类的 SubmitChanges(); 方法讲修改后的数据提交到数据库.

 

posted on 2017-08-23 10:41  zero0r1  阅读(142)  评论(0)    收藏  举报