设为首页 加入收藏

TOP

Entity Framework学习之创建Entity Framework数据模型(三)
2015-07-20 17:52:13 来源: 作者: 【 】 浏览:8
Tags:Entity Framework 习之 创建 数据 模型
如下:

    
    
     

    

    
  
     
  
     
  
     
  
     

    

添加的数据库连接字符串指定Entity Framework将使用名字为“ContosoUniversity1.mdf”的LocalDb数据库(数据库暂时还不存在,EF会自动创建它)。如果你想将你的数据库文件放在App_data目录中,您必须将AttachDBFilename=|DataDirectory|\ContosoUniversity1.mdf添加到到数据库连接字符串。

如果不在web.config中指定数据库连接字符串,Entity Framework会基于数据库上下文类并使用默认的连接诶字符串。

10.新建Student Controller和Views

现在新建一个网页来显示数据,并在请求数据的过程中自动触发数据库的创建。你首先需要创建一个新的Controller,但在此之前,编译项目并确保MVC controller框架可以正常使用此模型和数据库上下文类。

右键点击Controllers文件夹,选择“Add”,单击“New Scaffolded Item”。

在对话框中,选择“MVC 5 Controller with views, using Entity Framework”

\

\

在Add Controller对话框,使用下面的设置:

\\

当你点击“Add”时,框架将创建一个StudentController.cs 文件和一组与之相关联的Views(.cshtml文件)。以后当使用 Entity Framework创建项目时还可以利用框架的一些额外功能:只需创建第一个模型类而无需创建连接字符串,然后在Add Controller对话框指定新的上下文类。
在打开的StudentController.cs文件,你将看到类中已经有一个实例化的数据库上下文对象:

private SchoolContext db = new SchoolContext();
Index方法从数据库上下文实例中的Students属性读取Students实体集来获取学生列表:

 public ViewResult Index()
{
    return View(db.Students.ToList());
}
在student\Index.cshtml 视图中显示数据:



\\

11.查看数据库


你可以使用Server Explorer 或者SQL Server Object Explorer来查看数据库,这里将使用Server Explorer。

1.关闭浏览器

2.在Server Explorer中,展开Data Connections,展开School Context(ContosoUniversity),之后展开Tables ,你会看到数据中新建的表,如下图:

\

\

3.右击Student表并选择Show Table Data查看表中的数据:

\

\

4.关闭Server Explorer数据库连接

ContosoUniversity1.mdf 和 .ldf 数据库文件存放在C:\Users\ 文件夹下。

由于你使用了DropCreateDatabaseIfModelChanges初始化程序,你现在可以对Student类做出更改,重新运行应用程序,数据库会自动重新建立来匹配你所做出的更改。如果你添加EmailAddress属性到Student类中,重新运行应用程序并打开Student页面,然后检查数据库表中的数据,你会看到新的EmailAddress列。

12.约定

因为使用了约定,Entity Framework 可以为你创建一个完整的数据库,所以你可以只需要写少量的代码。这些约定已经在之前的教程中被你使用到,或许你没有意识到你正在使用它们:

命名的属性被用作外键(例如Student实体的primary key是ID,导航属性的外键是StudentID)。也可以以 来命名Foreign key属性

其实约定是可以被重写的,例如指定表的名称不应当使用复数形式


项目源码:https://github.com/johnsonz/MvcContosoUniversity

THE END



<script type="text/java script">
<script type="text/java script">BAIDU_CLB_fillSlot("771048");
点击复制链接 与好友分享! 回本站首页
<script> function copyToClipBoard(){ var clipBoardContent=document.title + '\r\n' + document.location; clipBoardContent+='\r\n'; window.clipboardData.setData("Text",clipBoardContent); alert("恭喜您!复制成功"); }
<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"24"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];
您对本文章有什么意见或着疑问吗?请到 论坛讨论您的关注和建议是我们前行的参考和动力??
上一篇: HDU 1027 Ignatius and the Princess II 选择序列题解
下一篇: poj 2187 Beauty Contest , 旋转卡壳求凸包的直径的平方
相关文章
C++对象模型(1):对象内存布局简介
C++ - 对象模型之各种对象的内存分配
<script type="text/java script">BAIDU_CLB_fillSlot("182716");
<script type="text/java script">BAIDU_CLB_fillSlot("517916");
图文推荐
<script> (functi
首页 上一页 1 2 3 4 5 6 下一页 尾页 3/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇POJ 1840 Eqs(hash) 下一篇hdu 4960 Another OCD Patient(记..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: