今天总结下如果MSSQL的数据库如何使用EF Code First

第一步:建立实体类

例如:用户类(测试用,没写那么多,只有简单的创建时间,用户昵称和唯一标识),这个类是数据库中的表映射到C#中的对象,所以可以说是C#中对象,也可以说是数据库中的表。

 public class UserTable

    {

        public string Id { get; set; }

        public DateTime BuildTime { get; set; }

        public string NickName { get; set; }

    }

第二步:建立数据库上下文

创建类DbModels,也可以直接创建ADO.NET 实体数据模型,然后选择空CodeFirst模型

内容如下:

 public class DbModels : DbContext

    {

        //构造方法,base("这里是使用的ConnectString"),设置连接字符串

        public DbModels() : base("name=DbModels")

        {        }

        public virtual DbSet<UserTable> User { get; set; }

    }

第三步:配置文件

entityFramework节点下,需要设定预处理程序

<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />

connectionStrings节点下,设定预定的连接字符串(这是一个默认的,使用的VS自带的本地数据库,可以修改为服务器或自己安装的数据库实例)

<add name="DbModels" connectionString="data source=(LocalDb)\MSSQLLocalDB;initial catalog=ORM.EntityFramework.SqliteCodeFirst.DbModels;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />

第四步:可以在程序的入口载入初始数据,读取数据,添加数据或修改数据后,注意使用SaveChanges()方法保存数据到数据库

扩展:数据库的初始化,可以在数据库上下文的构造函数中调用Database.SetInitializer()来设置数据库初始化的行为

1.数据库不存在时重新创建数据库

Database.SetInitializer(new CreateDatabaseIfNotExists<DbModels>())

2.每次启动应用程序时创建数据库

Database.SetInitializer(new DropCreateDatabaseAlways<DbModels>())

3.模型更改时创建数据库

Database.SetInitializer(new DropCreateDatabaseIfModelChanages<DbModels>())

4.从不创建数据库

Database.SetInitializer(null)

文章信息

创建时间
2023-12-11
作者
郭铭心
是否所有人可见
所有人可见
最后修改日期
2023-12-11
点击数
181