通过Microsoft Entity Framework创建模型实体类
来源:互联网 发布:南风七夕捏脸数据 编辑:程序博客网 时间:2024/06/05 22:39
这篇文章教你如何使用MVC的Microsoft Entity Framework;如何使用Entity 向导创建一个ADO.NET 实体数据模型。这篇文章将演示如何构建一个应用程序通过Entity Framework选择、修改和删除数据库中的数据。
Microsoft Entity Framework是一个ORM工具可以帮你根据数据库表自动生成数据访问层,帮你差事少繁琐的工作量。其实这也不是唯一的方法,其它比如使用Microsoft LINQ to SQL,NHibernate 或者SubSonic创建MVC模型实体类。
首先创建一个电影样例子数据库。如下表格所示范区。
列名
数据类型
是否为空
是否是主键
Id
int
False
True
Title
Nvarchar(100)
False
False
Director
Nvarchar(100)
False
False
然后创建ADO.NET实体数据模型。新建一个MVC项目,右键选择Models文件夹,选择添加项,然后选择ADO.NET Entity Data Model。选择模型类别“从数据库生成”然后按照向导建好一个名为ModelTab.edmx的实体数据模型。
在HomeController中添加数据库实例代码如下:
namespace MvcApp.Controllers
{
[HandleError]
public class HomeController : Controller
{
Models.MovieEntities _db;
public HomeController()
{
_db = new MovieEntities();
}
public ActionResult Index()
{
ViewData.Model = _db.MovieTable.ToList();
ViewData["Message"] = "Welcome to ASP.NET MVC!";
return View();
}
public ActionResult Add()
{
return View();
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Add(FormCollection form)
{
var MovieToAdd = new MvcApp.Models.MovieTable();
TryUpdateModel(MovieToAdd, new string[] { "Id","Title", "Director" }, form.ToValueProvider());
if (string.IsNullOrEmpty(MovieToAdd.Title))
ModelState.AddModelError("Title-", "Title is request!");
if (string.IsNullOrEmpty(MovieToAdd.Director))
ModelState.AddModelError("Director-", "Director is request!");
if (ModelState.IsValid)
{
_db.AddToMovieTable(MovieToAdd);
_db.SaveChanges();
return RedirectToAction("Index");
}
return View(MovieToAdd);
}
public ActionResult Edit(int id)
{
// Get movie to update
var movieToUpdate = _db.MovieTable.First(m => m.Id == id);
ViewData.Model = movieToUpdate;
return View();
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(FormCollection form)
{
// Get movie to update
var id = Int32.Parse(form["id"]);
var movieToUpdate = _db.MovieTable.First(m => m.Id == id);
// Deserialize (Include white list!)
TryUpdateModel(movieToUpdate, new string[] { "Title", "Director" }, form.ToValueProvider());
// Validate
if (String.IsNullOrEmpty(movieToUpdate.Title))
ModelState.AddModelError("Title", "Title is required!");
if (String.IsNullOrEmpty(movieToUpdate.Director))
ModelState.AddModelError("Director", "Director is required!");
// If valid, save movie to database
if (ModelState.IsValid)
{
_db.SaveChanges();
return RedirectToAction("Index");
}
// Otherwise, reshow form
return View(movieToUpdate);
}
public ActionResult Delete(int id)
{
// Get movie to delete
var movieToDelete = _db.MovieTable.First(m => m.Id == id);
// Delete
_db.DeleteObject(movieToDelete);
_db.SaveChanges();
// Show Index view
return RedirectToAction("Index");
}
public ActionResult About()
{
return View();
}
}
}
最后视图中添加Add.aspx与Edit.aspx
//--index.aspx添加如下列表
<div>
<% foreach (var m in ViewData.Model)
{ %>
Title: <%= m.Title %>
<br />
Director: <%= m.Director %>
<br />
<%= Html.ActionLink("Edit", "Edit", new { id = m.Id })%>
<%= Html.ActionLink("Delete", "Delete", new { id = m.Id })%>
<hr />
<% } %>
<%= Html.ActionLink("Add Movie", "Add") %>
</div>
//---add.aspx添加如下
<form method="post" action="/Home/Add">
Id:
<br />
<%= Html.TextBox("id") %>
Title:
<br />
<%= Html.TextBox("title") %>
<br /><br />
Director:
<br />
<%= Html.TextBox("director") %>
<br /><br />
<input type="submit" value="Add Movie" />
</form>
//--Edit.aspx添加如下
<form method="post" action="/Home/Edit">
<!-- Include Hidden Id -->
<%= Html.Hidden("id") %>
Title:
<br />
<%= Html.TextBox("title") %>
<br /><br />
Director:
<br />
<%= Html.TextBox("director") %>
<br /><br />
<input type="submit" value="Edit Movie" />
</form>
这样就完也通过框架自动生成模型实体类来实现select,insert,update,delete操作。
- 通过Microsoft Entity Framework创建模型实体类
- [翻译]使用Entity Framework创建模型类
- \t\t[O/RM]EDM 微软 实体 模型 框架 Microsoft Entity Framework
- Entity Framework实体模型 入门视频教程
- Asp.Net MVC 模型(使用Entity Framework创建模型类)
- Asp.Net MVC 模型(使用Entity Framework创建模型类)
- Entity Framework中实体模型命名空间的问题
- Asp.Net MVC 模型(使用Entity Framework创建模型类)1
- Entity Framework 实体框架综述
- Entity Framework 实体关系总结
- Entity Framework 实体关系总结
- .Net Entity Framework 实体关系
- Entity Framework 实体关系总结
- Entity Framework 三层架构--持久层使用封装之实体模型
- ADO.NET Entity Framework (实体模型框架) 一些使用的注意事项
- ASP.NET MVC3 实例(二) 使用 Entity Framework 创建实体数据模型
- ASP.NET MVC3 实例(二) 使用 Entity Framework 创建实体数据模型
- ASP.NET MVC3 实例(二) 使用 Entity Framework 创建实体数据模型
- 数据同步算法研究 ( 好博客) http://blog.csdn.net/liuben/archive/2010/08/06/5793706.aspx
- 主题:与区别
- 足彩欧洲赔率—对照转换表
- 我为何爱读代码?你为何也应当爱? http://blog.csdn.net/bvbook/archive/2011/02/16/6187192.aspx
- 迁移oracle的dbf数据文件
- 通过Microsoft Entity Framework创建模型实体类
- Android基础(六) ListView - ArrayAdapter
- Android各个版本之间的区别(一)
- Linux问题集
- ipad/iphone上的jQuery效果问题
- C# 反射
- PCI9054芯片接口设计中若干问题的深入研究
- 足彩看盘
- Android各个版本之间的区别(二)