文档章节

core 中ef 连接sql server数据库 在类库中 自动生成 model

o
 osc_z1hvg4cu
发布于 2018/04/24 17:19
字数 409
阅读 7
收藏 0

精选30+云产品,助力企业轻松上云!>>>

首先 介绍 

Scaffold-DbContext "Server=.;database=sdd;User Id=sa;Password=123456;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir building    

网上 很多生成 命名是下面这个:

Scaffold-DbContext "Server=.;database=test1;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir building    
生成的代码里面默认是这样的:

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (!optionsBuilder.IsConfigured)
{
optionsBuilder.UseSqlServer(@"Server=localhost;database=oss1;Trusted_Connection=True;");////Trusted_Connection=True;为受信任连接,相当于windows身份验证模式。
}

}

但当你发布之后 那就会 发现问题,发布之后无法访问 数据库,所以最好弄成 userid  password 的形式。

开始 工作流程:

     一、安装Nuget包  如下图:

      

第二步:将项目 切换到 类库下 (右击 类库)

然后找到 程序包管理器控制台,输入指令:

Scaffold-DbContext "Server=.;database=sdd;User Id=sa;Password=123456;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir building

就会在 类库下 的 building 文件夹 下 生成 数据库 表对应model

(如果 不切换项目,就会在 主项目下面 生成 building文件夹 和 model,不在类库下面)

然后 在 主项目 的 startup里面 注册一下就好了

 services.AddDbContext<DateCore.building.oss1Context>();

 

 

 完工。

参考文档链接:https://www.cnblogs.com/tianma3798/p/6835400.html

今天重新做这类项目,发现以上会有问题,经处理已解决 -----2019/01/24

解决方法:1.content 中删除无参数的构造函数,处理后这样:

//public SavillsContext()
        //{
        //}

        public SavillsContext(DbContextOptions<SavillsContext> options)
            : base(options)
        {
        }

 

  2.现在没必要在contest中配置数据库连接了,可以注释掉:

//protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        //{
        //    if (!optionsBuilder.IsConfigured)
        //    {
        //      //  var strda = AppConfigurtaionServices.Configuration.GetConnectionString("DefaultConnection");
        //        optionsBuilder.UseSqlServer("");
        //    }
        //}

  3.在start.cs中配置数据库路径:

services.AddDbContext<Context>(options =>
                
                // 如果使用SQL Server 2008数据库,请添加UseRowNumberForPaging的选项
               
                options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"), b => b.UseRowNumberForPaging())
                );

  

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

为什么从HBase的0.96版本开始,舍弃了-ROOT-文件?

HBase结构的读写流程 (1). HBase0.96版本之前: (2). HBase0.96开始: a. 当客户端获取到.meta文件的位置之后,会缓存.meta.文件的位置 b. 客户端还会缓存HRegion的位置 -ROOT-存在的意义: ...

其乐m
24分钟前
18
0
volatile关键字对 - What is the volatile keyword useful for

问题: At work today, I came across the volatile keyword in Java. 今天的工作中,我遇到了Java中的volatile关键字。 Not being very familiar with it, I found this explanation: 不太熟......

技术盛宴
29分钟前
25
0
golang 封装 mysql 和 redis 连接

Mysql封装 package dbimport ("fmt"_ "github.com/go-sql-driver/mysql""github.com/jmoiron/sqlx")var DB *sqlx.DBfunc init(){database, err := sqlx.Op......

开源中国最牛的人
30分钟前
16
0
pdfbox 读取文件报错 java.io.IOException: Page tree root must be a dictionary

pdfbox java.io.IOException: Page tree root must be a dictionary 示例代码 public static void main(String[] args) { try (InputStream sampleInputs = new ClassPathResource("s......

lemos
38分钟前
28
0
整理 Linux下列出目录内容的命令

在 Linux 中,有非常多的命令可以让我们用来执行各种各样的任务。当我们想要像使用文件浏览器一样列出一个目录下的内容时,大家第一时间想到的是 ls 命令。但只有 ls 命令能实现这个目的吗?...

良许Linux
39分钟前
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部