LINQ to SQL 中的DataContext方法及记录的存储
先给一段描述和一段代码,然后再提出我的疑问,希望大神路过看看提提意见,谢谢!
LINQ to SQL
DataContext成员方法:方法GetTable;
方法原型:
Table<T> GetTable<T>();
方法GetTable在调用是只需要指定实体类型T即可,DataContext对象会根据指定的实体类信息来查询数据库中相应的物理 表,并将记录信息封装成实体类对象放入序列中返回。
以下是GetTable方法的使用示例: C# code
1 string str_conn1 ="Data Source=localhost;Initial Catalog=DB_Student;User ID=sa;Password=king";
2 DataContext dc4 =new DataContext(str_conn1);
3
4 Table<Course> courses = dc4.GetTable<Course>();
5
6 Console.WriteLine("可选课程:");
7 foreach (var c in courses.Select(s =>new {Cno=s.No,Cname=s.Name }).Take(3))
8 {
9 Console.WriteLine(c.ToString());
10 }
问题1、这个Table<>是什么,它包含哪些方法、属性?
问题2、“Table<Course> courses = dc4.GetTable<Course>();”我的理解是这个course是个物理表对应的实体类对象,他返回的是“记录信息”,可是记录可以有很多,但是实体类中保存记录的属性却只能存储一个记录,那么这些许多的记录是如何存储在实体类中的?
------解决方案--------------------Table<Course>不是什么实体类,Course才是。
不要把一个实体数据枚举集合类说成是实体类。
------解决方案--------------------
------解决方案--------------------
这里不要和.NET的枚举类型(enum)混淆,最好叫做迭代器。
所谓迭代器就是一个提供了 Current()、MoveNext()(同时判断是否到达最后)、Reset()三个基本抽象操作的一种对象。