我们以一个酒店管理系统的数据库为例子
表结构很简单:GuestInfo(客人信息表),Room(房间表),RoomType(房间类型表),HotelInfo(每个月盈利信息)
整体就是,Room中有个房间类型ID的外键,客人表中有个房间的ID的外键。月盈利信息先不管
准备:新建项目 linq_Ch4控制台程序,新建DB文件夹
右击DB文件夹,添加→新建项
选择LINQ to SQL类,文件名为 Hotel.dbml,添加
打开服务器资源管理器,我的快捷键是Ctrl+W+L
选中这四张表,往已经打开的Hotel.dbml文件中拖放,然后Ctrl+S保存
1.1 查询单表
引入命名空间,让我们可以访问dbml文件
我们有个对象叫 dbml文件名+DataContext组成的一个名称的对象,通过它你就可以操作数据库了
①查出空房间,还可以住两个人以上的房间的信息;查出的结果先按照 最大住人数降序显示结果再按照床位数降序显示结果(锻炼基本单表查询,多条件排序)
代码如下:
HotelDataContext db = new HotelDataContext();//这里是前面类名+DataContext //1. 查出空房间,还可以住两个人以上的房间的信息;查出的结果先按照 最大住人数降序显示结果,再按照床位数降序显示结果 var query1 = from o in db.Room where o.R_Status == 0 && o.R_MaxPNum > 1 orderby o.R_MaxPNum descending, o.R_BedNum descending select o; foreach (var item in query1) { Console.WriteLine(string.Format("房间ID:{0}\t{1}\t床位数:{2},最多可住{3}人,描述:{4}", item.R_ID, item.R_Status == 0 ? "空闲" : "有人", item.R_BedNum, item.R_MaxPNum, item.R_Discription)); }
效果图: