小编Phi*_*hil的帖子

EF Core 2.2 空间类型无法添加到数据库迁移

我正在尝试使用 EF 核心 2.2 构建带有空间对象的数据库,但在尝试创建数据库迁移时遇到问题。使用https://docs.microsoft.com/en-us/ef/core/modeling/spatial,特别是:

class Country
{
    public int CountryID { get; set; }

    public string CountryName { get; set; }

    // Database includes both Polygon and MultiPolygon values
    public IGeometry Border { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用此创建迁移,则会出现以下错误:

属性“Country.Border”属于接口类型(“IGeometry”)。如果它是导航属性,则通过将其转换为映射实体类型来手动配置此属性的关系,否则使用 NotMappedAttribute 或“OnModelCreating”中的“EntityTypeBuilder.Ignore”忽略该属性。

同样,如果我将其更改为 Geometry 类型,则会得到:

无法映射属性“Geometry.UserData”,因为它属于“object”类型,它不是受支持的基本类型或有效的实体类型。显式映射此属性,或使用 '[NotMapped]' 属性或使用 'OnModelCreating' 中的 'EntityTypeBuilder.Ignore' 忽略它。

我不知道我的对象是点、线还是多边形,所以它必须是通用的。我如何在我的结构中表示它?另外我看到有些地方说我需要添加以下代码:

public class MyDBContextFactory : IDesignTimeDbContextFactory<MyDBContext>
    {

        public MyDBContext CreateDbContext(string[] args)
        {
            var builder = new DbContextOptionsBuilder<MyDBContext>();
            builder.UseSqlServer(cnnString, x => x.UseNetTopologySuite());
            return new MyDBContext(builder.Options);
        }
   } …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework spatial ef-core-2.2

12
推荐指数
1
解决办法
4573
查看次数

.NET Core 中的 C# ConfigurationManager

我有一个共享的 .NET 标准库,最初由 .NET 4.8 MVC 4 项目引用。这个共享库中有很多代码使用ConfigurationManager,例如:

var sze = ConfigurationManager.AppSettings["MaxAttachmentSize"];
Run Code Online (Sandbox Code Playgroud)

(和其他)的这个值MaxAttachmentSize被存储在web.config.

现在我正在构建一个 .NET 6 项目,它将使用同一个共享项目,并且我需要找到一种方法使这些配置应用程序设置在新的 .NET Core 应用程序中工作。最好的方法是什么?

我想我的问题是:

  • 有没有办法像从ASP.NET MVC 4 项目中读取一样ConfigurationManager从 .NET Core 文件中读取数据?appsettings.jsonweb.config
  • 如果没有,我是否可以使用另一个配置读取器来代替它,它可以完成双重任务,能够像我需要的那样为两个项目工作?

不过,目前的最大问题是,ConfigurationManger现在的所有调用都是静态的,因此如果 .NET Core 选项也可以是静态的,那将非常有帮助。如果没有,则需要更多工作来移动 ASP.NET MVC 4 项目以使这些设置依赖项注入可用。

c# .net-core .net-6.0

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

调用MVC5 cshtml文件中的Typescript方法,使用webpack捆绑

刚开始使用webpack,我在将一些MVC功能与webpack和typescript结合起来时遇到了麻烦.请参阅下面的代码组合:

webpack.config.js:

var wbConfigEntries = {
    "jqkendoMain": [
        paths.appjs + "main.ts"
    ]
};

module.exports = {
    devtool: 'source-map',
    entry: wbConfigEntries,
    target: 'web',
    output: {
        path: paths.dist, 
        publicPath: './',
        filename: outputFile,
        library: "[name]",
        libraryTarget: "umd",
        umdNamedDefine: true
    },
....
Run Code Online (Sandbox Code Playgroud)

main.ts:

import * as $ from 'jquery';
import * as bootstrap from 'bootstrap';
import '../node_modules/@progress/kendo-ui/js/kendo.web';
import '../node_modules/@progress/kendo-ui/js/kendo.aspnetmvc';
import '../node_modules/bootstrap/dist/css/bootstrap.css';
import '../node_modules/bootstrap/dist/css/bootstrap-theme.css';
import '../node_modules/font-awesome/css/font-awesome.css';
import '../node_modules/@progress/kendo-ui/css/web/kendo.common.css';

export default class Main {
    private _name = '';

    constructor(name: string) {
        this._name = name;
    }

    TestFunc() …
Run Code Online (Sandbox Code Playgroud)

typescript asp.net-mvc-5 webpack webpack-2

6
推荐指数
1
解决办法
818
查看次数

Visual Studio 中的 tslint 显示 node_modules 的 linting 错误

我正在使用 Visual studio 2017 (15.5.1) 并尝试让 tsLint 正常工作。由于某种原因,我从 node_modules 中的所有文件以及我的任何声明 (*.d.ts) 文件中收到 linting 错误(在 Visual Studio 错误列表 (Build+intellisense) 中)。我所做的一切似乎都无法解决这个问题。我想从我的错误中排除这些文件。似乎到处都认为这是可能的,但我发现的大多数例子都不是与视觉工作室打交道,我想知道是否还缺少其他一些额外的设置。以下是我的相关文件。

tslint.json

{
  "extends": [
    "tslint:latest",
    "tslint-config-prettier"
  ]
}
Run Code Online (Sandbox Code Playgroud)

tsconfig.json

{
  "compilerOptions": {
    "module": "es2015",
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "allowSyntheticDefaultImports": true,
    "noEmitHelpers": true,
    "noEmitOnError": true,
    "noImplicitAny": false,
    "allowUnusedLabels": true,
    "target": "es5",
    "sourceMap": true,
    "strictNullChecks": false,
    "removeComments": true,
    "declaration": false,
    "plugins": [ { "name": "tslint-language-service" } ],
    "lib": [
      "dom",
      "es6",
      "scripthost",
      "es5",
      "es2015",
      "es2015.promise"
    ],
    "types": [
      "angular-ui-bootstrap", …
Run Code Online (Sandbox Code Playgroud)

visual-studio typescript tsconfig tslint visual-studio-2017

5
推荐指数
0
解决办法
573
查看次数

Azure DevOps 管道在构建之间获取工作项

我正在寻找一个预制选项来进行 2 个构建,并比较它们之间完成的工作项目或 PR。我知道有 REST API 选项可以找到此信息(https://learn.microsoft.com/en-us/rest/api/azure/devops/build/builds/get%20work%20items%20 Between%20builds ?view=azure-devops-rest-5.0 ) ,但如果已经存在,我宁愿不为此构建自己的应用程序。azure devops 中是否有内置的东西可以显示此信息,最好以可导出的格式?商店中是否可能存在现有的 DevOps 扩展?不幸的是,我所做的任何搜索都只会调出 REST API 调用,而没有其他任何内容。

azure-devops azure-pipelines-build-task azure-pipelines azure-pipelines-release-pipeline

5
推荐指数
1
解决办法
4976
查看次数

如何在 .Net Core 3 中引用托管服务?

回到 .net core 2,我创建了一个带有自定义属性的托管服务,例如:

 public class MyService : BackgroundService 
{
public bool IsRunning {get;set;}
...
Run Code Online (Sandbox Code Playgroud)

我可以在 startup.cs 中设置,如:

public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IHostedService,HostedServices.MyService>();
...
Run Code Online (Sandbox Code Playgroud)

然后我可以在剃刀页面的其他地方引用它,例如:

public class IndexModel : PageModel
{
    private readonly IHostedService _mySrv;
    public IndexModel(IHostedService mySrv) => _mySrv = mySrv;

    [BindProperty]
    public bool IsRunning { get; set; }

    public void OnGet() => IsRunning = ((HostedServices.MyService)_mySrv).IsRunning;
}
Run Code Online (Sandbox Code Playgroud)

现在我已升级到 .net core 3,我的启动已更改为:

services.AddHostedService<HostedServices.MyService>();
Run Code Online (Sandbox Code Playgroud)

但是我在 IndexModel 中的 DI 引用不再为我提供 MyService,而是为我提供了一个 GenericWebHostService 类型的对象,我无法弄清楚如何从中获取我的自定义 MyService。在 IndexModel 中将“IHostedService”更改为“MyService”也不起作用,我收到“无法解析服务”错误。

如何从依赖注入中取回 MyService 的实例?

c# asp.net-core asp.net-core-hosted-services asp.net-core-3.0

5
推荐指数
1
解决办法
2464
查看次数

TF400856: 以下服务未在数据库中注册:IdentityManagement

我正在运行 On Premise TFS 2018 Update2,我正在尝试在线迁移到 TFS。我现在需要为我的收藏制作一个 dacpac,为了做到这一点,我需要像他们在此处概述的那样分离我的收藏:

https://docs.microsoft.com/en-us/tfs/server/admin/move-project-collection?view=vsts#detach-coll

但是,当我尝试分离时,标题中出现错误。任何想法如何解决这个问题?我发现与此问题类似的唯一事情是:

https://social.msdn.microsoft.com/Forums/vstudio/en-US/e6ad3a1a-bfe0-44a9-a3e6-3442004c7687/tf400856-error-identity-management-is-not-registered-in-the-database?论坛=tfsadmin

它基本上说'uinstall TFS并从备份中重新安装它',如果有更简单的方法,我真的不想尝试。

tfs tfs-migration azure-devops

4
推荐指数
1
解决办法
941
查看次数

在非异步方法中调用异步方法

我有一个继承自的类,但我无法访问基类。我正在覆盖该基类的一个方法,该方法不是异步的,但我需要它来调用我创建的异步方法。像这样:

public class OverridingClass : BaseClass
{
    public override bool TestMethod()
    {
        var res = engine.DoAsyncFunction().Result;
        //do stuff with res value
    }
}
Run Code Online (Sandbox Code Playgroud)

最好使用这种方法,在其中取出“结果”值,还是应该向引擎添加一个新的同步方法并完全忽略它的异步功能,就像这样?

public class OverridingClass : BaseClass
{
    public override bool TestMethod()
    {
        var res = engine.DoFunction();
        //do stuff with res value
    }
}
Run Code Online (Sandbox Code Playgroud)

或者还有什么我可以完全对重写的函数做的事情来使它异步?如果我尝试使用重写的方法:

public async override Task<bool> TestMethod()...
Run Code Online (Sandbox Code Playgroud)

然后我会收到一个编译错误,说该方法与基本签名不匹配。

c# async-await

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

使用 Azure Gov Cloud 中的 javascript SDK 密钥时,Application Insights“仪器密钥无效”

将我的网站迁移到政府云,但我遇到的问题之一是政府云中的应用程序洞察工具密钥似乎不起作用。我得到的回复是:

{"itemsReceived":7,"itemsAccepted":0,"errors":[{"index":0,"statusCode":400,"message":"无效的检测密钥"},{"index":1," statusCode":400,"message":"无效的检测密钥"},{"index":2,"statusCode":400,"message":"无效的检测密钥"},{"index":3,"statusCode" :400,"message":"无效的检测密钥"},{"index":4,"statusCode":400,"message":"无效的检测密钥"},{"index":5,"statusCode":400 ,"message":"无效的检测密钥"},{"index":6,"statusCode":400,"message":"无效的检测密钥"}]}

我仍在跟踪一些数据,从将我的网络应用程序链接到应用程序见解直接为我提供了一些信息(例如https://learn.microsoft.com/en-us/azure/azure-monitor/app/azure-web-apps ?tabs=net),但是我在应用程序中使用的 javascript SDK(https://learn.microsoft.com/en-us/azure/azure-monitor/app/javascript)是错误的。如果我从常规的天蓝色云中给它一个仪器密钥,它就可以正常工作,但如果我从政府云中给它一个仪器密钥,那么它就无法工作。

我知道密钥是正确的,并且我知道我的见解正在运行,否则它根本不会记录任何活动。看起来 azure gov cloud 不喜欢 javascript SDK。

azure azure-application-insights azure-gov

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