LINQ学习笔记:LINQ to SQL实体类
或者简单的使用: 1: Console.WriteLine (dataContext.Customers.Count());
LINQ to SQL设计器会在合适的地方使用复数标识符,在这个例子中,它使用的是dataContext.Customers而不是dataContext.Customer – 虽然SQL Table和实体类名都是Customer. 关联 实体类生成工具还做了一项非常有用的工作,对于每一个在数据库中已经定义了的关系,生成工具都会在两边的实体类中自动生成对应的属性.例如,假设我们定义了一个客户和采购表的一对多的关系: 1: create table Customer
2:
3: (
4:
5: ID int not null primary key, 6:
7: Name varchar(30) not null 8:
9: )
10:
11: create table Purchase
12:
13: (
14:
15: ID int not null primary key, 16:
17: CustomerID int references Customer (ID), 18:
19: Description varchar(30) not null, 20:
21: Price decimal not null 22:
23: )
如果我们使用了自动生成的实体类的话,我们可以类似下面这样编写查询: 1: var dataContext = new MyTypedDataContext (“connectionString”); 2:
3: Customer cust1 = dataContext.Customers.OrderBy (c => c.Name).First();
4:
5: foreach (Purchase p in cust1.Purchases) 6:
7: Console.WriteLine (p.Price);
8:
9: Purchase cheapest = dataContext.Purchases.OrderBy (p => p.Price).First();
10:
11: Customer cust2 = cheapest.Customer;
可以看到我们可以通过customer引用到purchase,同样也可以通过purchase引用到对应的customer. 并且如果cust1和cust2刚好指向的是同一条客户记录, cust1==cust2则会返回true. 现在让我们来查看一下Customer实体上自动生成的Purchases属性的标记: 1: [Association (Storage=“_Purchases”,
2:
3: OtherKey=“CustomerID”)]
4:
5: public EntitySet Purchases 6:
7: { get {…} set {…}}
一个EntitySet类似是一个预定义的内置Where语句,用于查询关联的实体.[Association]属性提供了LINQ to SQL编写此查询所需的信息.和其他类型的查询一样,这个查询是延迟执行 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |