基于LINQ 的课程网络资源平台的设计与实现

2015-12-17 12:59孙翠华胡元军戈勇
电脑知识与技术 2015年28期

孙翠华 胡元军 戈勇

摘要:文章首先分析了课程资源平台的总体架构,以《.NET动态网站开发》课程为例,设计了平台的各个功能模块,分析了主要技术模块类型管理和文章管理的LINQ实现。

关键词:课程资源平台;课程网络平台;LINQ;资源平台

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2015)27-0018-02

1 平台开发环境

《.NET动态网站开发》课程网络资源平台基于Visual Studio 2013(NET4.0、C#)语言和SQL Server2012数据库开发,使用Linq To SQL技术对数据进行处理,使用DIV+CSS进行页面布局。

2 平台功能模块设计

《.NET动态网站开发》课程网络资源平台后台主功能模块由六大部分组成,分为系统管理、教学指导区、资料下载区、交流讨论区、成果展示区和效果评价区,其中【系统管理】模块包含七个功能,分别是班级管理、专业管理、文件类型管理、学校指导教师管理、企业指导教师管理、学生管理和学生分数管理,【教学指导区】模块包含四个功能,分别是异步视频、同步视频、作业发布和作业检查,【资料下载区】模块包含四个功能,分别是教学课件、教学文件、管理文件和学生自学相关材料,【交流讨论区】模块包含两个功能,分别是讨论区设置和交流讨论,【成果展示区】模块包含四个功能,分别是学生作品展示、学生风采展示、教师风采展示和工作室成果展示,【效果评价区】模块包含三个功能,分别是评价时间设置、查看所有评价和我的评价,平台功能模块如图1所示。

3 主要技术的实现

在平台的功能模块中,虽然分成了很多子模块,在系统实现过程中,主要分为类型管理和文章管理两大块,其中类型管理如班级管理、专业管理、文件类型管理等都可以定义为类型管理功能来实现,异步视频、同步视频、作业发布、教学课件、教学文件、管理文件等都可以归纳为文章管理来实现。

3.1 类型管理技术的实现

类型管理通过对类型的增查改删来实现管理功能。

(1)定义一个Loaddate方法,通过Linq的联合查询,查询到类型数据:

var data = from a in db.BigClass

orderby a.ID descending

select new

{ a.BigName,

a.ID

};

gvBigClass.DataSource = data;

gvBigClass.DataBind();

(2)类型的编辑功能通过btnEdit_Click()事件实现:

int id;

if (Int32.TryParse(((LinkButton)sender).CommandArgument, out id))

{

BigClass obj = db.BigClass.FirstOrDefault(a => a.ID == id);

if (obj != null)

{

this.txtEdit.Text = obj.BigName;

this.HiddenField1.Value = obj.ID.ToString();

}

}

(3) 类型的删除功能通过btnDel_Click()事件实现:

int id;

if (Int32.TryParse(((LinkButton)sender).CommandArgument, out id))

{

BigClass obj = db.BigClass.FirstOrDefault(a => a.ID == id);

if (obj != null)

{

db.BigClass.DeleteOnSubmit(obj);

var sm = db.SmallClass.Where(a => a.BigID == id);

if (sm != null)

{ db.SmallClass.DeleteAllOnSubmit(sm); }

var art = db.Article_table.Where(a => a.BigID == id);

if (art != null)

{ db.Article_table.DeleteAllOnSubmit(art); }

db.SubmitChanges();

Loaddate();

}

}

3.2文章管理技术的实现

(1)首先通过联合查询,查询到四张表格文章表、大类表、小类表和管理表中的数据:

AdminList adm = (AdminList)Session["LOG"];

var data = from a in db.Article_table

join b in db.BigClass on a.BigID equals b.ID

join c in db.SmallClass on a.SmallID equals c.ID

join d in db.AdminList on a.AddID equals d.ID

orderby a.ID descending

select new

{

a.ArticleTitle,

a.AddTime,

a.ID,

b.BigName,

a.BigID,

c.SmallName,

d.UserName,

a.AddID

};

(2)对查询到数据分别判断:

①如果不是管理员只能显示本人添加的文章

if (adm.Poperdom != 0)

{ data = data.Where(a => a.AddID == adm.ID); }

②如果关键词不为空刚显示标题包含关键字的文章列表

if (this.keyword.Text != "")

{ data = data.Where(a => a.ArticleTitle.Contains(this.keyword.Text)); }

③如果选择了大类显示该大类下的所有文章

if (this.big.SelectedItem.Value != "")

{ data = data.Where(a => a.BigID == Int32.Parse(this.big.SelectedItem.Value)); }

(3)btnEdit_Click事件实现文章的编辑功能:

if (Int32.TryParse(((LinkButton)sender).CommandArgument, out id))

{Response.Redirect("articleedit.aspx?id=" + id); }

(4)btnDel_Click()事件实现文章的删除功能:

Article_table obj = db.Article_table.FirstOrDefault(a => a.ID == id);

if (obj != null)

{

db.Article_table.DeleteOnSubmit(obj);

db.SubmitChanges();

Loaddate();

}

4 总结

《.NET动态网站开发》课程资源平台采用LINQ技术来实现,简化了代码的编写量,平台运行的学生作品展示界面如图2所示,对于高职院校软件开发专业的学生来说,LINQ技术更容易掌握,该资源平台本身就可以作为一个典型的项目案例来学习。

参考文献:

[1] 徐照兴. NET平台下LINQ TO SQL关键技术的实践研究[J]. 湖北科技学院学报,2015,35(3):6-7.

[2] 方生. 基于.NET的LINQ to SQL三层架构的研究与实现[J]. 电脑知识与技术,2014,10(12): 2743-2746.

[3] 陈建华,胡开明. 基于C#.NET的LINQ TO SQL查询[J]. 鄂州大学学报,2014,21(7): 97-98.

[4] 李成,张坤,田吉. LINQ技术在科技奖励申报系统研发中的应用[J]. 安庆师范学院学报(自然科学版),2014,20(4):84-86.

[5] 孙翠华. 高职院校《.NET动态网站开发》课程教学改革的探讨[J]. 电脑知识与技术,2014,10(31):7366-7367.

[6] 娄立志. 教师教育课程平台顶层设计的理念与构想——搭建与基础教育改革相沟通的桥梁[J]. 教育研究,2012(12):100-104.

[7] 曹刚,于欣言,杨晨. 深度课程改革下Moodle开放式课程平台的应用研究[J]. 实验技术与管理,2013,30(1):184-187.

[8] 孙翠华,王锋.基于PhoneGap的跨平台枇杷病害诊断系统设计[J]. 湖北农业科学,2015,54(19):4826-4828.