C#EF DBFirst学习

EF框架有三种基本的方式:DB First,Model First,Code First。练习一下DB First, 

DatabaseFirst就是围绕数据库为中心的开发方式,使用这种模式我们必须要先设计和创建数据库,然后使用VS在已有数据库的基础上创建ADO.NET实体数据模型,之后就可以在编程的过程中使用EF访问和操作数据库里的数据了

1、先在数据库中创建几张表

2、在vs中创建一个类库项目,添加ado.net实体数据模型 

  ado.net实体数据模型 必须在安装EF包之后才会显示。 

 

3. 安装EF框架

打开NUGet程序包后搜索EF ,点击下载安装即可,我们这里就安装最新版就好

 

3.添加新项“ADO.NET实体数据模型”

点击完成 后生成对应数据库里的EDM

在DBFirst模式下,是不需要对edmx文件做修改的,让系统自动生成就好了

如果现在要对表结构或者列名进行修改,那么先在数据库上修改好了,然后在edmx中将相应的实体删除,选择从数据库更新模型 ,再将删除的表添加回来

比如删除 或者修改字段名称EnterpriseID   

                          

同样的,添加表也是如此,这种情况下,即使原来数据库里面有数据也不会有什么影响的

 

3、在这个项目中做一个简单的增删改查,在class1类中添加如下代码

class Class1
    {
        EFDBEntities mo = null;
        public Class1()
        {
            mo = new EFDBEntities();
        }
        public IList<SysUser> getUserName()
        {
            //使用Lambda表达式查询数据
            IList<SysUser> RoleList = mo.SysUser.Where(o => o.UserState != 0).ToList();
            return RoleList;
        }

        public int AddSysUserSet(SysUser r)
        {
            try
            {
                mo.SysUser.Add(r);
                mo.SaveChanges();//对数据库的修改一定要添加这条语句
            }
            catch (Exception e)
            {
                return 0;
            }
            return 1;
        }

        public int ModifySysUserSet(SysUser r)
        {
            IList<SysUser> rlist = mo.SysUser.Where(o => o.UserID == r.UserID).ToList();
            SysUser rn = rlist.ElementAtOrDefault(0);
            if (null != rn)
            {
                rn = r;
                return mo.SaveChanges();
            }
            return 0;
        }
        public bool DelSysUserSet(SysUser r)
        {
            try
            {
                mo.SysUser.Remove(r);
                mo.SaveChanges();
            }
            catch (Exception e)
            {
                return false;
            }
            return true;

        }
    }

 

创建一个控制台项目,将数据库链接字符串复制到配置文件中,然后直接调用class1中的方法就可以实现简单的增删改查了

与modelfirst相比,dbfirst在项目开发中更容易,至少,在数据库有数据的情况下,添加新的实体要更简单,也不用担心会因为误操作而导致数据丢失。当然前提条件就是要提前在数据库中将表结构设计和创建好。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章