码迷,mamicode.com
首页 > 其他好文 > 详细

EF学习和使用(二)ModelFirst

时间:2015-07-29 23:09:44      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:modelfirst   ef建模   

ModelFirst我们称之为“模型优先”,这里的模型指的是“ADO.NET Entity Framework Data Model”,使用ModelFirst的前提是,应用程序还没有创建相应的数据库,咱们可以用Visual Studio通过设计系统相关的数据模型来生成数据库结构。当然和DataBaseFirst的区别也是显而易见,可以说是DataBaseFirst的逆向工程。

下面咱们来看看ModelFirst的实例。


第一步


首先创建一个控制台应用程序,右键添加新建项,选择“ADO.NET 实体数据模型”,名称输入ModelTest,接着选择空EF设计器模型:

技术分享


第二步


在模型设计视图中,右键添加一个新实体:

技术分享

并且给实体添加几个标量属性:“Name”“Sex”“Password”;同样的方式添加第二个实体“OrderDetail”,并添加“LoginTime”和“LogoutTime”属性:

技术分享


第三步


接下来我们添加二者之间的关系,“User”和“LoginLog”是一对多的关系,右键添加“关联”

技术分享

添加过关系后,User实体可以通过导航属性LoginLog,直接访问到LoginLog实体,反之亦然:

技术分享


第四步


到目前为止Model First中的Model已经创建结束,下面就需要生成到数据库了,在模型设计视图空白处右键选择“根据模型生成数据库…”
选择数据库连接,点击下一步,你将会看到生成的sql语句:

技术分享


第五步


点击完成,此时生成了数据库上下文和实体类,并且会打开建表的脚本
然后右键选择执行即可。执行完毕后,查看数据库是否生成了相应的表,并且添加几条数据。

技术分享


然后用控制台进行测试:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EFModelFirst
{
    class Program
    {
        static void Main(string[] args)
        {
            //实例化数据库上下文
            ModelTestContainer dbcontext = new ModelTestContainer();

            //使用Lambda表达式查询数据
            var userList = dbcontext.UserSet.Where(o => o.Name != "").ToList();

            //打印查询结果  
            if (userList.Any())
            {
                foreach (var userEntity in userList)
                {
                    Console.WriteLine(userEntity.Name + "----" + userEntity.Sex);
                }
            }

            Console.Read();

        }
    }
}


技术分享



注意:当我们的实体需要改变时,只需要在模型设计视图修改保存模型,此时实体类就会相应改变,然后选择“从模型生成到数据库”重新执行生成的脚本即可将变化同步到数据库。

版权声明:本文为博主原创文章,未经博主允许不得转载。

EF学习和使用(二)ModelFirst

标签:modelfirst   ef建模   

原文地址:http://blog.csdn.net/u010028869/article/details/47134343

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!