很久没写博客了,今天公司项目换框架,和大家商量要搞个Entity Framework code first ,然后开始搭建Demo
简单的就不重复了,直接上干货,中间踩过的坑, code first 创建多数据库、多个上下文,而且表名还一样
解决方案,一个数据库创建一个实体类项目,如下图:
问题来了,两个实体类,怎么创建数据库?
解决方案:分开单独创建,分次创建
1,配置webconfig 两个数据库连接字符串,然后重新生成解决方案
<add name="NewsContext" providerName="System.Data.SqlClient" connectionString="Server=.;UID=XXX;PWD=XXX;Database=YJC1111;" /> <add name="WCSContext" providerName="System.Data.SqlClient" connectionString="Server=.;UID=XXX;PWD=XXX;Database=YJC2222;" />
2,首先打开nuget 命令窗口
工具 →Nuget 包管理器 →程序包管理器控制台
3,创建 Migrations,输入以下命令 会在项目中创建一个文件夹
PM> Enable-Migrations -ContextTypeName "CodeFirst.Entity.NewsContext" -ProjectName "CodeFirst.Entity" -StartUpProjectName "Code" -ConnectionStringName "NewsContext" -Verbose
4,添加 数据库表(数据迁移)
对于已经先有数据库,再用Code first 的同志,请执行 Add-Migration InitialCreate -IgnoreChanges
PM> Add-Migration -Name "Add" -ProjectName "CodeFirst.Entity" -StartUpProjectName "Code" -ConnectionStringName "NewsContext" -Verbose
5,更新,提交
PM> Update-Database -Script -ProjectName "CodeFirst.Entity.WCS" -StartUpProjectName "Code" -ConnectionStringName "WCSContext" -Verbose
以上步骤操分别操作完,会创建2个数据库,表名一样,字段名也一样,都没问题
图1
图2
图3