首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在Azure函数中使用实体框架核心记录插入失败(在开发环境中工作)

在Azure函数中使用实体框架核心记录插入失败(在开发环境中工作)
EN

Stack Overflow用户
提问于 2021-12-16 02:43:43
回答 1查看 113关注 0票数 0

我有一个Azure函数v4应用程序,它读取一个csv文件,并使用6在Azure数据库中填充几个表。

Startup.cs ->注入数据库和服务到应用程序

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
builder.Services.AddDbContext<DbContext>(options => 
  options.UseSqlServer(DatabaseConnectionString, sqloptions => sqloptions.CommandTimeout(1000)) ); 

builder.Services.AddTransient<IClientService, ClientService>();

ClientService.cs

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class ClientService()
{
    ...
    public ClientService(DBContext dbContext)
    {
      _dbContext = dbContext;
    }
    ..
    
    public void Process()
    {
      var fileRecords = //gets file records
      ...
      
      // Insert to table 1
      foreach(var item in fileRecords)
      {
        _dbContext.table1.add(item);
      }
      
      _dbContext.SaveChanges(); // Inserts 70 records
      
      ...
      
      // Insert to table 2
      foreach(var item in fileRecords)
      {
        _dbContext.table2.add(item);
        
        // Save changes inside for each
        // inserts 100 records
        //_dbContext.SaveChanges();  
      }
      
      // Save changes outside for each
      // inserts 0 records
      _dbContext.SaveChanges(); 
    }
}

Function.cs

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[FunctionName("ImportCsVToAzureSqlDB")]
public async Task RunAsync([TimerTrigger("0 0 1 * * *")] TimerInfo myTimer, ILogger log, ExecutionContext context)
{
  _clientService.Process();
}

我一直使用AppInsights作为记录器,记录器在EFCore的日志记录消息之间停止。我做错什么了?

更新

下面是配置文件的内容

host.json

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "logging": {
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": true,
        "excludedTypes": "Request"
      }
    }
  },
  "version": "2.0"
}

local.settings.json

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet",
    "AzureSqlDB": "<Connection string>",
  },
}
EN

回答 1

Stack Overflow用户

发布于 2022-01-04 08:53:52

我发现了这个问题,其实这个问题在一些记录上是一个简单的FK违规行为。问题是实体框架没有抛出错误,运行只是突然停止。这是我如何得到异常,以防其他人面临同样的问题。您需要为每个表插入创建单独的上下文,一旦我这样做,错误就会出现。我不知道为什么EF核心会这样做。在修复了FK问题之后,我能够使用常规代码运行。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    using (var context = new DbContext()) 
    { 
        foreach(..)
        {
          // insert table 1
        }

        context.SaveChanges(); 
    }
    
    using (var context = new DbContext()) 
    { 
        foreach(..)
        {
          // insert table 2
        }

        context.SaveChanges(); 
    }

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70377632

复制
相关文章
在文章中插入超美的音乐播放插件开发记录
是不是有点复杂呢?而且鸡肋呢?没错下一款插件我就准备推出 mokplayer 实现 typecho 遗留问题 音乐播放
乔千
2020/04/16
1.5K0
在文章中插入超美的音乐播放插件开发记录
在 Azure Application Insights 中记录用户身份信息
Azure Application Insights 是一个非常强大的 APM 工具,用于监视 Web 应用程序。但是,并非我们需要的所有功能都是开箱即用的。例如,为了记录请求和响应正文,我们必须写一个自定义 ASP.NET Core 中间件,就像这篇文章说的那样。
Edi Wang
2021/08/23
1K0
在 Azure Application Insights 中记录用户身份信息
使用insert () 在MongoDB中插入数组
“insert”命令也可以一次将多个文档插入到集合中。下面我们操作如何一次插入多个文档。
MongoDB中文社区
2020/02/19
7.6K0
使用insert () 在MongoDB中插入数组
await 只在 async 函数中工作
关于 promise 的一种更优雅的写法 async/await 中,await 只会出现在 async 函数中,我们使用 async/await 时,几乎不需要 .then,因为 await 为我们处理等待;但是在代码的顶层,当我们在 async 函数的外部时,我们在语法上是不能使用 await 的,所以通常添加 .then/catch 去处理最终结果或者 error。
前端开发博客
2020/11/04
1.5K0
await 只在 async 函数中工作
在IT开发中工作种类的分类
可能很多同学在学习python之前都听说过什么:前端程序员,后端程序员,安全工程师,运维,爬虫,全栈程序员等等各种各样的头衔名称,搞得大家都不知道该怎么选择了。我当初学编程之前也有过类似的经历,所以这里我尽可能给大家解释明白。
python自学网
2021/11/27
9520
在IT开发中工作种类的分类
在Atom中配置Python开发环境
当然,这里有很多很棒的文本编辑器。例如Sublime Text, Brackets, Atom。我一直都是Atom的粉丝,因为它是完全免费的,而且它有很多可用的包和主题,使得编码更容易一些。在这里,我将介绍如何使用Atom配置一个“Python友好”的开发环境、一些对python编码有用的软件包,然后看看如何编写一些基本代码。
赵康
2018/03/09
2.8K0
在VSCode中配置PHP开发环境
XAMPP 是一个易于安装的 Apache 发行版,下载并安装好就行了。当然也可以用 phpstudy。
字节星球Henry
2021/08/09
5.2K0
在Atom中设置Python开发环境
当然,网络上有很多很棒的文本编辑器。Sublime Text,Bracket,Atom等。就我个人而言,我一直都是Atom的粉丝,因为它是完全免费的,并且它有很多可用的包和主题,这些包和主题使编码变得更容易一些。在这里,我将介绍如何使用Atom来建立一个“Python友好”的开发环境,我将提到一些对python编码有用的软件包,然后看看如何编写一些基本代码。
teachertian
2018/03/13
4.9K0
在Atom中设置Python开发环境
在IDEA中配置Maven开发环境
环境说明: 系统:win10专业版 deepin V20 IDE:IDEA 2020.3 java:jdk1.8 Maven:3.8.1
知识分子没文化
2023/07/01
6770
在IDEA中配置Maven开发环境
在Atom中设置Python开发环境
当然,这里有很多很棒的文本编辑器。Sublime Text,Brackets,Atom。我一直都是Atom的粉丝,因为它是完全免费的,它有很多可用的包和主题,使编码更容易一些。在这里,我将介绍如何使用Atom设置一个“友好的Python”的开发环境,一些对python编码有用的软件包,然后看看如何编写一些基本代码。
anthlu
2018/03/08
2.1K0
在Atom中设置Python开发环境
尴尬:在Excel中为指定数据插入饼图失败
本来是非常非常简单的一个需求,即便不会,随便百度下也都有说明。 可自己却在一次紧急工作中因此耽误了时间,需求是需要插入一个饼图但因操作错误一直无法正确显示饼图数据,非常尴尬,干脆记录下这一刻。
Alfred Zhao
2022/06/16
1.7K0
【MYSQL函数】MYSQL中IF函数在where中的使用
WHERE IF(条件, true执行条件, false执行条件) 业务需求: 查询SUPPLIER_CLASS=0 and tp1.`TYPE_FLAG` = 1 或者 SUPPLIER_CLASS=1 实现有两种:
用户5640963
2019/07/25
12.2K0
python在sqlite中插入数据
python通过引入sqlite的包,就能够直接操作sqlite数据库 import sqlite3 import math cx=sqlite3.connect("mydatabase.sqli
py3study
2020/01/06
3.9K0
在LaTeX中插入python代码
老师突然要求交上去的论文需要在附录加上代码,奈何我使用的LaTeX模板只能高亮显示Matlab的代码,但是我写论文的时候绝大部分代码都是用Python写的在这里实名吐槽一下Matlab的数据处理功能这么拉跨,不知道为什么还被拿来当数据挖掘课的第一语言,没办法,只能找一个方法让LaTeX里面能高亮显示Python代码。
Hsinyan
2022/06/19
6.7K0
在LaTeX中插入python代码
在vscode中配置R的开发环境
有时候各位使用R的用户不知道会不会有这样的感觉,visual studio和Rstudio由于负载过重,在打开或者加载R script时会出现加载过慢的情况,但对于很多数据工作者来说,variable inspector和data view这类的数据可视化功能必不可少,而visual studio和Rstudio在这方面做得可以说是非常完善。在这时候笔者就想到了visual studio code,毕竟作为宇宙最强IDE的减配和开源版本(这里形容可能不太准确),各种语言相应的开发插件众多。更加让笔者惊喜的是,目前vscode-R一直处于开发阶段,并且在最近的1.2.0版本结合了vscode关于web view的API,添加了R session watcher——一个集成的数据可视化构架,并且在1.21中完善了windows系统下的extension的bug。我们来看看集成的viewer会有什么样的效果:
用户7652506
2020/08/12
11.8K0
在vscode中配置R的开发环境
在 Python 中如何使用 format 函数?
在Python中,format()函数是一种强大且灵活的字符串格式化工具。它可以让我们根据需要动态地生成字符串,插入变量值和其他元素。本文将介绍format()函数的基本用法,并提供一些示例代码帮助你更好地理解和使用这个函数。
海拥
2023/07/05
1.1K0
在CentOS 6.4中配置PHP开发环境
yum install -y php httpd 注意:在CentOS 6.4系统上通过yum安装的PHP版本为5.3.3
星哥玩云
2022/07/04
6600
在CentOS 6.4中配置PHP开发环境
在开发环境使用 Docker
本文是对官方文档的总结与备注。 官方文档:https://docs.docker.com/develop/ 根据官方文档的层次,分为 容器 (Containers) 使用 Docker run 服务 (Services) 使用 Docker Compose Defines how containers behave in production 服务栈 (Stack) 使用 Swarm mode Defining the interactions of all the services 必须知道
康怀帅
2018/02/28
1.6K0
腾讯云函数在开发中的实践
腾讯云函数在它的帮助文档里面有已经提到了它的几个具体实践,通过管中窥豹,我也来谈谈在具体业务中的几个实践。
槽痞
2020/09/20
2.8K0
怎样在Visio中插入大括号?
在标注类形状中就可以找到大括号了。可以看到,系统默认配置了两种大括号类型:双侧大括号和单侧大括号,大家可以根据实际需要自己选择。
狼啸风云
2021/05/17
12.9K0
怎样在Visio中插入大括号?

相似问题

实体框架核心-插入失败

21

在Azure函数中禁用实体框架日志记录

24

实体框架核心3.1.7 :在更新记录期间失败

10

在实体框架中添加实体插入空记录

24

在实体框架核心6中一次插入多个记录

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文