如下:
添加的数据库连接字符串指定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 , 旋转卡壳求凸包的直径的平方
-
相关文章
-
<script type="text/java script">BAIDU_CLB_fillSlot("182716");
-
<script type="text/java script">BAIDU_CLB_fillSlot("517916");
-
图文推荐
<script>
(functi