小编Sam*_*Sam的帖子

我应该在DocumentDb中反规范化还是运行多个查询?

我正在学习DocumentDb中的数据建模.这是我需要一些建议的地方

请看下面我的文档是什么样的.

我可以采取两种方法,既有利也有弊.

场景1:

如果我通过将项目团队成员信息(即姓名,电子邮件等)保存在与项目相同的文档中来保持数据非规范化(请参阅下面的文档),我可以在一个查询中获取我需要的信息但是当Jane Doe结婚,她的姓氏改变了,我必须更新Projects系列中的很多文件.我还必须非常小心地确保包含员工信息的文档的所有集合也得到更新.例如,如果我在Projects集合中更新Jane Doe的名字但忘记更新TimeSheets集合,那我就麻烦了!

场景2:

如果我保持数据有些规范化并且只在项目文档中保留EmployeeId,那么每当我想获得项目列表时,我就可以运行三个查询:

  • 查询1返回项目列表
  • 查询2将为我提供出现在第一个查询中的所有项目团队成员的EmployeeId
  • 查询3是否有员工信息,即姓名,电子邮件等.我将使用查询2的结果来运行此信息

然后我可以组合我的应用程序中的所有数据.

这里的问题是DocumentDb现在似乎有很多限制.我可能正在阅读项目团队中数百名员工的数百个项目.看起来没有有效的方法来获取其Id出现在我的第二个查询中的所有员工信息.请再次注意,我可能需要在此处提取数百个员工信息.如果以下SQL查询是我用于员工数据的,我可能需要运行几次相同的查询以获取我需要的所有信息,因为我认为我不能拥有数百个OR语句:

SELECT e.Id, e.firstName, e.lastName, e.emailAddress
FROM Employees e
WHERE e.Id = 1111 OR e.Id = 2222
Run Code Online (Sandbox Code Playgroud)

我知道DocumentDb仍在预览中,其中一些限制将得到修复.话虽如此,我该如何处理这个问题?如何有效地存储/管理和检索我需要的所有项目数据 - 包括项目团队信息?方案1是更好的解决方案还是方案2还是有更好的第三种选择?

这是我的文档的样子.一,项目文件:

{
   id: 789,
   projectName: "My first project",
   startDate: "9/6/2014",
   projectTeam: [
      { id: 1111, firstName: "John", lastName: "Smith", position: "Sr. Engineer" },
      { id: 2222, firstName: "Jane", lastName: "Doe", position: "Project Manager" }
   ]
}
Run Code Online (Sandbox Code Playgroud)

这里有两个员工文档,它们位于Employees集合中:

{
   id: 1111,
   firstName: "John",
   lastName: "Smith",
   dateOfBirth: "1/1/1967',
   emailAddresses: …
Run Code Online (Sandbox Code Playgroud)

document-database azure-cosmosdb

10
推荐指数
1
解决办法
3132
查看次数

Visual Studio 2017 15.2中没有产品更新

我正在运行Visual Studio 2017 15.2,我看不到15.3的更新.这是为什么?什么是升级到15.3的正确方法?

编辑:

在我的开发电脑上没有提示升级到15.3,我被困在15.2:

在此输入图像描述

在我的构建服务器上,我确实得到了选项:

在此输入图像描述

现在,我在企业中运行了不同版本的软件.如何在Dev PC上升级Visual Studio?如图所示我使用的是最新的安装程序.

visual-studio visual-studio-2017

10
推荐指数
1
解决办法
985
查看次数

想要了解异步

我已经使用了异步编码,但我并不完全理解如何使用它 - 尽管我理解这个概念以及为什么需要它.

这是我的设置:

我有一个Web API,我将从我的ASP.NET MVC应用程序调用,我的Web API将调用DocumentDB.在代码示例中,我在向DocumentDB发送查询时看到了很多等待关键字.

如果我需要在我的MVC应用程序异步中使我的索引操作方法,我很困惑?如果我的Web API中的CreateEmployee()方法应该是异步的,我也很困惑?

在这种情况下使用异步的正确方法是什么?

这是我的代码(这段代码目前给我错误,因为我的MVC动作方法不是异步)---- ASP.NET MVC App Code ----

public ActionResult Index()
{

   Employee emp = new Employee();
   emp.FirstName = "John";
   emp.LastName = "Doe";
   emp.Gender = "M";
   emp.Ssn = "123-45-6789";

   using (var client = new HttpClient())
   {
      client.BaseAddress = new Uri("http://myWebApi.com");
      client.DefaultRequestHeaders.Accept.Clear();
      client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

      HttpResponseMessage response = await client.PostAsJsonAsync("hr/create/newemployee", emp);
      if (response.IsSuccessStatusCode)
      {
         emp = await response.Content.ReadAsAsync<Employee>();
      }
   }

   // Display employee info
   return View(emp);
}
Run Code Online (Sandbox Code Playgroud)

---- Web API代码----

private static readonly …
Run Code Online (Sandbox Code Playgroud)

c# async-await asp.net-web-api2 azure-cosmosdb

9
推荐指数
2
解决办法
2万
查看次数

在API方法中返回HttpStatusCode

如果出现问题,如何从ASP.NET Core 1.0中的API方法返回HttpStatus代码?

如果该方法应该返回一个特定的对象类型,当我尝试返回一个Http状态代码时,我得到一个错误,说我无法将我的对象转换为状态代码.

[HttpPost]
public async Task<SomeObject> Post([FromBody] inputData)
{
   // I detect an error and want to return BadRequest HttpStatus
   if(inputData == null)
       return new HttpStatusCode(400);

   // All is well, so return the object
   return myObject;
}
Run Code Online (Sandbox Code Playgroud)

asp.net http-status-codes asp.net-web-api asp.net-core-mvc asp.net-core-1.0

9
推荐指数
1
解决办法
5977
查看次数

从获取响应对象获取文本

我正在使用fetchAPI调用,一切正常,但在这个特定的实例中,我遇到了一个问题,因为API只返回一个字符串 - 而不是一个对象.

通常,API返回一个对象,我可以解析JSON对象并得到我想要的东西,但在这种情况下,我无法在响应对象中找到我从API获得的文本.

这是响应对象的样子. 在此输入图像描述

我以为我会在体内发现文字,但我似乎无法找到它.我在哪里看?

javascript ajax fetch

9
推荐指数
3
解决办法
1万
查看次数

获取源地图

我真的很难让源地图工作.当我运行我的应用程序时,我在控制台中看到错误 - 见下文: 在此输入图像描述

当我点击fineUploaderTest-bundle.js:1链接时,我得不到任何代码 - 见下文: 在此输入图像描述

在该窗口的底部,请注意它显示为:

源自fineUploaderTest-bundle.js的源映射

我的Webpack版本是2.7.0,这是webpack.config.js文件:

var IS_DEV = false;

var webpack = require('webpack');
var path = require("path");

// Define plugins needed for production and dev cases
var _pluginsDev = [
    new webpack.ProvidePlugin({
        'fetch': 'imports-loader?this=>global!exports-loader?global.fetch!whatwg-fetch',
        moment: 'moment',
        ps: 'perfect-scrollbar'
    }),

];
var _pluginsProd = [
    new webpack.ProvidePlugin({
        'fetch': 'imports-loader?this=>global!exports-loader?global.fetch!whatwg-fetch',
        moment: 'moment',
        ps: 'perfect-scrollbar'
    }),
    new webpack.DefinePlugin({ // Minimizer, removing multiple occurances of imports et.c
        'process.env': {
            'NODE_ENV': JSON.stringify('production')
        }
    }),
    new webpack.optimize.UglifyJsPlugin({
        minimize: …
Run Code Online (Sandbox Code Playgroud)

source-maps webpack

9
推荐指数
1
解决办法
288
查看次数

获取与 DateTime.MinValue 等效的 JavaScript

在 C# 中,日期可以有一个最小值,即1/1/0001 12:00:00 AM. 这在验证情况下很好。

我尝试在 JavaScript 中生成这个值,但它不起作用:

var minDate = new Date("1/1/0001 12:00:00");
Run Code Online (Sandbox Code Playgroud)

如果我将其转换为toISOString(),我将得到"2001-01-01T18:00:00.000Z".

我在 C# 中的 API 后端需要一个日期值,我不想DateTime.MinValue在 JavaScript 中任意创建我自己的版本。有没有办法在 JavaScript 中生成这个值?

javascript

9
推荐指数
1
解决办法
2万
查看次数

在使用 Auth0 的 React Native 项目中找不到名称为“compile”的配置

自从我将物理设备连接到我的计算机来测试我的 React Native 项目后,我就开始遇到这个问题。在物理设备出现之前,相同的代码无需任何更改即可在我的计算机上正常运行,并且我能够在 Android 模拟器上安装并测试它。

现在,我不断收到以下错误,并且应用程序无法构建。错误是:

配置项目“:react-native-auth0”时出现问题。

未找到名称为“compile”的配置。

错误指向\node_modules\react-native-auth0\android\build.gradle包含以下代码的文件:

task androidJavadoc(type: Javadoc) {
        source = android.sourceSets.main.java.srcDirs
        classpath += files(android.bootClasspath)
        classpath += files(project.getConfigurations().getByName('compile').asList()) // <-- The error is pointing to this line
        include '**/*.java'
    }
Run Code Online (Sandbox Code Playgroud)

正如我所说,使用 Android 模拟器在我的笔记本电脑上一切正常。自从连接和配置物理设备后,我什至无法再构建项目。

知道问题是什么以及如何解决它吗?

android auth0 react-native

9
推荐指数
1
解决办法
5279
查看次数

面向 Azure 应用服务上的 .NET 8 的 ASP.NET Core Web API

我有一个 ASP.NET Core Web API,一直在 Azure 应用服务 Windows 平台上运行。这个应用程序的目标是 .NET 7,今天我将其更新为目标 .NET 8。它在本地编译和运行良好。

根据此公告,.NET 8 现已在 Azure 应用服务上提供:https ://azure.github.io/AppService/2023/11/14/dotnet8-ga.html

我将应用程序部署到 Azure 应用服务,然后将 .NET 版本更改为 .NET 8 - 如下所示:

在此输入图像描述

这不起作用,我不断收到以下错误:

ANCM 无法找到本机依赖项

然后我在 Reddit 上找到了这篇文章: https: //www.reddit.com/r/dotnet/comments/17v7qb5/http_error_50031_ancm_failed_to_find_native/

因此,我继续安装ASP.NET Core .NET 8 x64x86通过高级工具下的 Kudu - 如下所示:

在此输入图像描述

然后,我多次在 Azure 应用服务上停止并重新启动该应用程序,但它仍然无法正常工作。当我尝试访问 API 上的端点时,它旋转了很长时间,并返回“服务不可用”错误,但根据 Azure 上的应用程序仪表板,它已启动并正在运行。

有什么建议么?还有其他人遇到升级到 .NET 8 的问题吗?

PS:我的 API 应用程序的部署是通过 GitHub 操作完成的,我确实将 .NET 版本更新到 .NET 8 - 见下文:

在此输入图像描述

asp.net azure azure-web-app-service asp.net-core .net-8.0

9
推荐指数
1
解决办法
2956
查看次数

必须提供"SignInScheme"选项

我正在创建一个仅使用Facebook/Google身份验证的ASP.NET 5 MVC 6应用程序.我也试图在没有整个ASP.NET身份的情况下使用cookie中间件 - 遵循这篇文章:https: //docs.asp.net/en/latest/security/authentication/cookie.html

所以我开始使用没有身份验证的空白应用程序然后添加了Microsoft.AspNet.Authentication.Cookies和Microsoft.AspNet.Authentication.Facebook NuGet包,以便采用非常简约的方法,其中我不包含任何我不包含的内容需要.

我将以下代码添加到Startup.cs中的Configure中,但我得到"必须提供SignInScheme选项"错误.知道我错过了什么吗?

app.UseCookieAuthentication(options =>
            {
                options.AuthenticationScheme = "MyCookieMiddlewareInstance";
                options.LoginPath = new PathString("/Accounts/Login/");
                options.AccessDeniedPath = new PathString("/Error/Unauthorized/");
                options.AutomaticAuthenticate = true;
                options.AutomaticChallenge = true;
            });

            app.UseFacebookAuthentication(options =>
            {
                options.AppId = "myFacebookAppIdGoesHere";
                options.AppSecret = "myFacebookAppSecretGoesHere";
            });
Run Code Online (Sandbox Code Playgroud)

c# cookies facebook-authentication asp.net-core-mvc asp.net-core

8
推荐指数
1
解决办法
5613
查看次数