LINQ学习笔记:LINQ to SQL实体类
LINQ to SQL 实体类 只要使用了适当的属性 (attribute),LINQ to SQL允许你使用任何类去展现数据: 1: [Table]
2:
3: public class Customer 4:
5: {
6:
7: [Column(IsPrimaryKey=true)] 8:
9: public int ID; 10:
11: [Column]
12:
13: public string Name; 14:
15: }
[Table]属性存在于System.Data.Linq.Mapping命名空间中,它将会告诉LINQ to SQL此类型的一个对象实例代表数据库表中的一行.默认情况下,它假设表名和类名是一致,如果不一致,我们也可以使用下面的做法来完成映射: [Table (Name=”Customers”)] 一个被标记了[Table]属性的类称为一个LINQ to SQL实体.它非常接近设置完全匹配数据库当中的表结构. [Column]属性标记了一个映射到数据库列的字段或者属性. 如果列名和字段名或属性名不同, 我们也可以用以下的做法完成映射: [Column Name=”FullName”] public string Name; IsPrimaryKey属性指示该列是否是表中的主键列.为了维护对象的一致性以及更新和写回数据库, 它是必须的. 我们还可以定义公开属性去关联私有字段, 而不是直接定义共有字段,这样我们可以在属性访问器里面添加验证逻辑. 如果选择了这种方式, 你可以选择让LINQ to SQL在读取数据库数据的时候跳过属性访问器直接将数据写入字段: 1: string _name; 2:
3: [Column (Storage=“_name”)]
4:
5: public string Name 6:
7: { get { return _name; } set { _name =value; } } [Column (Storage=”_name”)]指示LINQ to SQL直接将数据写入_name字段(而不是通过Name属性). 由于LINQ to SQL使用反射因此可以允许字段被定义为私有的. DataContext 当你定义了实体类之后, 你可以通过实例化DataContext然后调用GetTable开始进行查询操作, 如下所示: 1: var dc = new DataContext (“cx string…”); 2:
3: Table customers = dc.GetTable ();
4:
5: Customer cust = customers.OrderBy (c =>c.Name).First();
6:
7: cust.Name = “the new name”; 8:
9: dc.SubmitChanges();
一个DataContext对象会对它实例化的所有实体类进行追踪, 在其生命周期内, 一个DataContext永远都不会包含2个 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |