LINQ to SQL 中的DataContext方法及记录的存储

CST08055 2012-04-21 03:15:43
先给一段描述和一段代码,然后再提出我的疑问,希望大神路过看看提提意见,谢谢!

LINQ to SQL
DataContext成员方法:方法GetTable;

方法原型:

  Table<T> GetTable<T>();

方法GetTable在调用是只需要指定实体类型T即可,DataContext对象会根据指定的实体类信息来查询数据库中相应的物理 表,并将记录信息封装成实体类对象放入序列中返回。

以下是GetTable方法的使用示例:

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是个物理表对应的实体类对象,他返回的是“记录信息”,可是记录可以有很多,但是实体类中保存记录的属性却只能存储一个记录,那么这些许多的记录是如何存储在实体类中的?
...全文
202 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2012-04-22
  • 打赏
  • 举报
回复
迭代变量。
CST08055 2012-04-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
这里不要和.NET的枚举类型(enum)混淆,最好叫做迭代器。

所谓迭代器就是一个提供了 Current()、MoveNext()(同时判断是否到达最后)、Reset()三个基本抽象操作的一种对象。
[/Quote]
能解释下那个stu是什么么?
EnForGrass 2012-04-21
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
先给一段描述和一段代码,然后再提出我的疑问,希望大神路过看看提提意见,谢谢!

LINQ to SQL
DataContext成员方法:方法GetTable;

方法原型:

Table<T> GetTable<T>();

方法GetTable在调用是只需要指定实体类型T即可,DataContext对象会根据指定的实体类信息来查询数据库中相应的……
[/Quote]
问题一:Table<entity>,表示基础数据库中特定类型的表。
具体参考http://msdn.microsoft.com/zh-cn/library/bb358844.aspx
问题2:这个跟List<string>不是一样的理解吗?
threenewbee 2012-04-21
  • 打赏
  • 举报
回复
泛型语法知道么?不知道的话看看书,把语法温习下。
xboxeer 2012-04-21
  • 打赏
  • 举报
回复
各路大神出动 楼主真幸福
threenewbee 2012-04-21
  • 打赏
  • 举报
回复
这里不要和.NET的枚举类型(enum)混淆,最好叫做迭代器。

所谓迭代器就是一个提供了 Current()、MoveNext()(同时判断是否到达最后)、Reset()三个基本抽象操作的一种对象。
  • 打赏
  • 举报
回复
Table<Course>不是什么实体类,Course才是。

不要把一个实体数据枚举集合类说成是实体类。
CST08055 2012-04-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
Table<Course>不是什么实体类,Course才是。

不要把一个实体数据枚举集合类说成是实体类。
[/Quote]
老大,你的回答可能就是我一直想找问题——可以详细说下这个实体数据枚举集合吗---“Table<Course> courses = dc4.GetTable<Course>();”这个course是枚举集合么,是的话,它的枚举定义和成员是怎样的?
一直不明白的就是

Table<student> students = dc.GetTable<student>();
foreach(var stu int students)
console.writeLine("学号:" + stu.No);
Console.WriteLine("姓名:" + stu.Name);

这个stu是数据库表中一条记录吗,如果是的话一个表的所有记录是怎样在实例student中存储的呢,是使用了枚举么

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧