EF学习和使用(二)ModelFirst

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();

        }
    }
}


这里写图片描述



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

评论 41
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值