使用Entity Framework 4进行代码优先开发(2)

2019-04-14 09:43

些代码示例,看看如何使用这些类来执行常见的数据库操作: 使用LINQ表达式执行查询

用下面的LINQ查询表达式从数据库中获取数据。下图使用了LINQ表达式来获取所有将要举行的餐会:

我们在写LINQ表达式的时候也可以利用Dinners和RSVPs存在的关系。留意下图“where”子句过滤出参加人数大于0的餐会的方式:

要注意的是上面的查询的“where”子句(即只获取至少有一人参加的餐会)是在服务器端执行的——使执行查询和加载的数据量更为高效。 获取一个实例

我们可以使用LINQ的Single()函数,加上Lamda查询来获取Dinner的一个实例,如下面的代码所示:

或者,我们也可以利用EF“代码优先”函数库提供的Find()函数,根据ID来加载一个实例:

举办新餐会

下面的代码演示了如何创建一个新的Dinner实例并把它添加到数据库中。所有我们需要做的工作就是“new”一个Dinner对象,设置它的属性,最后把它加到NerdDinner Context对象的Dinners属性中。NerdDinner Context类支持 “工作单元”的模式,即你可以在Context中添加多个模型,然后调用“SaveChanges()”以事务的方式保存所有的数据库变动。

更新餐会信息

下面的代码演示了获取一个Dinner实例,更新其中一个属性,然后将改动保存到数据库的过程:

第三步:创建使用我们的模型的ASP.NET MVC控制器

现在来看看使用模型的更完整的场景,使用一个控制器类型来公布即将到来的餐会列表,并允许用户添加新的餐会:

右键单击“Controllers”文件夹,然后选择“添加->控制器”菜单项,我们把新的控制器命名为“HomeController”。

接着添加三个“动作函数”用来处理前面使用EF“代码优先”函数库创建的NerdDinners模型:

.

“Index”动作函数加载并显示即将到来的餐会列表。

而“Create”动作函数允许用户发布新的餐会。第一个“Create”函数用来处理用户访问/HOME/Create页面时,处理“HTTP GET” 的场景,以及发一个“New Dinner”表单让用户填写。而第二个“Create”函数用来处理跟那个表单关联起来的“HTTP POST”场景—将新餐会信息保存到数据库中。如果有任何验证错误,它会重新显示表单并加上相应的错误消息。 给我们的控制器加上视图

下一步将是给项目里加两个“视图模板”——一个给“Index”,另外一个给“Create”。

把鼠标放在控制器里的Index函数里,就可以在项目中为它添加一个视图了,然后单击右键在菜单中选择“添加视图”,弹出“添加视图”对话框。我们将创建一个强类型视图,然后给它传入一个包含“Dinner”模型对象的IEnumerable列表:

单击“添加”后,Visual Studio会创建一个/Views/Home/Index.aspx文件。再添加以下这些代码——为餐会信息生成一个列表,然后显示创建餐会的链接:


使用Entity Framework 4进行代码优先开发(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2018-2024年中国剑杆织机市场竞争格局报告(目录) - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: