let 的用法是暂时保存查询条件到一个范围变量, 然后where语句直接使用这个范围变量就可以. 变量的结果是一个布尔值
V是范围变量, 这个where语句是是从范围变量里面查询"国"的出现位置,如果找到了那结果必然大于0, 这样就表示这个变量匹配了, 通过select就可以把他输出.
这里使用了复合 from 语句, 表示 从集合中 获取一个 变量 , 然后从这个变量里面的一个集合再获取一个变量, 然后用这个变量来进行判断是否复合我们的查询结果, 复合的话就输出这个变量.
这里使用了多个from语句, 和复合from 语句不同, 这个是在多个数据源中查找, 这条语句查询的结果是64条结果, 并不是一一相加.类似嵌套循环语句的相加结果.
where 语句可以查询很复杂的条件, 只要条件是返回布尔值就能使用.
select 子句不光能直接输出参数, 还能输出自定义的复查参数 , 比如这里就自定义成了一个匿名类, 这样查询结果就是一个匿名的类.
Gruop 后面要接变量, 然后才BY , 后面接变量的属性返回的值来做分组条件. 复合的就分到一个组里面, 这种查询的结果要嵌套foreach才能查询出来.
这里是into的用法, 暂时保存查询结果, 供下一个查询语句再次进行查询
先按照升序排列, 然后再按照逗号后面的降序排
内连接
LINQ to SQL
创建实体类和数据的映射
[Table(Name="Teacher")] 将类名和数据库的表关联
[Column(Name="Id",IsPrimaryKey=true,DbType="Int Not Null", IsDbGenerated = true)] Name给属性指定列名,如果和数据库一致可以不用额外指定, isPrimarKey 指定时候为主键, DbType表示字段类型, IsDbGenerated表示是否是自增字段.
给实体类添加外键关系. 以下是给 Teacher 实体类添加的外键关系
EntiySet<Student> 在一对多关系中, 其中一的一方用EntiySet来修饰.来创建一个私有属性来存储字表
Association 用来指定外键关系.
Name 外键的名称
Storage 指定存储字段的名称
OtherKey 关联表中外键的字段
ThisKey 自身表在外键中使用的字段
给一对多中多的一放添加外键关系
EntityRef<Teacher> 一对多关系中,其中多的一放用 EntityRef来修饰
IsForeignKey 对于的外键时候是主键