Linq学习(三)-Linq TO SQL
Linq To SQL
Linq里那些查询操作都是给IEnumerable接口添加的扩展方法.Linq To Object 不用说也知道怎么用了,主要对一些继承IEnumerable接口的对象进行操作。Linq TO SQL 是针对微软SQL Server数据库进行操作的,可以当作一个ORM,某种程度上功能可以说是.Net中NHibernate,可惜只针对SQL Server,还有开源有支持其他的数据库或数据存储文件。
(1)构造一个实体映射表
[Table(Name = "Customers")]//对应Northwind数据库中的“Customers”表
public class Customer
{
[Column(IsPrimaryKey=true)]//主键
public string CustomerId { get; set; }
[Column(Name = "ContactName")]//Customers表中的"ContactName"字段,并重命名为Name
public string Name{get;set;}
[Column]
public string City { get; set; }
[Column]
public string Fax { get; set; }
public override string ToString()
{
return String.Format("Id={0},Name={1}",this.CustomerId,this.Name);
}
}
(2)获取表中数据:Linq To SQL 入口点为DataContext
public List<Customer> GetList()
{
//连接字符串
string connectionString = "Data Source=localhost;Initial Catalog=Northwind;Integrated Security=SSPI";
DataContext dct = new DataContext(connectionString);
Table<Customer> customer = dct.GetTable<Customer>();
return customer.ToList<Customer>();
}
(3)调用得到结果
static void Main(string[] args)
{
ToSQL sql = new ToSQL();
List<Customer> list = sql.GetList();
var result = from p in list
select new { Id = p.CustomerId, Name = p.Name };
foreach (var item in result)
{
Console.WriteLine(item.ToString());
}
Console.Read();
}