小编are*_*ler的帖子

实体框架EF.Functions.Like vs string.Contains

我正在阅读实体框架核心2.0的公告https://blogs.msdn.microsoft.com/dotnet/2017/08/14/announcing-entity-framework-core-2-0/

它说它们添加了新的Sql函数,就像EF.Functions.Like执行SQL LIKE操作一样.

我想知道,那么EF.Functions.Likestring.Contains/ 之间的区别是StartsWith什么?

例如:

var customers = context.Customers.Where(c => c.Name.StartsWith("a")); // Version A
var customers = context.Customers.Where(c => EF.Functions.Like(c.Name, "a%")); // Version B
Run Code Online (Sandbox Code Playgroud)

两个版本之间有什么区别?EF已经知道如何翻译string.Contains/ StartsWith到相应的SQL操作,不​​是吗?

我能想到的唯一原因是EF.Functions.Like会允许更复杂的模式"a%b%"(尽管这个可以写成StartsWith("a") && Contains("b"))

这是什么原因?

c# entity-framework

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

Go lang的多态性

我正在学习go lang,我想知道是否有办法做这样的事情:

type Foo struct {
   ...
}

type Bar struct {
   Foo
   ...
}

func getFoo() Foo {
   return Bar{...}
}
Run Code Online (Sandbox Code Playgroud)

在面向对象的语言中,这样的代码应该没有问题,但是在它中它会抛出一个错误,说getFoo()必须返回类Foo的实例.

有没有办法做多边形,类似于我在Go中所描述的?

oop polymorphism go

13
推荐指数
2
解决办法
6649
查看次数

预期枚举`std::result::Result`,找到()

我是 Rust 的新手。
我尝试创建一个Point实现Eqand的结构Debug,所以我这样做了:

use std::fmt;

pub struct Point {
    x: f32,
    y: f32,
}

impl Point {
    pub fn new(x: f32, y: f32) -> Point {
        Point{
            x: x,
            y: y,
        }
    }
}

impl fmt::Debug for Point {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        write!(f, "({}, {})", self.x, self.y);
    }
}

impl PartialEq for Point {
    fn eq(&self, other: &Self) -> bool {
        return self.x == other.x && self.y == …
Run Code Online (Sandbox Code Playgroud)

rust

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

ASP.NET Web Api 身份验证方法

我正在尝试为我的 Web api 实现身份验证。我读过有关 api 身份验证的不同技术,令牌技术对我来说是最合理的。

我阅读了有关如何在 ASP.NET 中实现基于令牌的身份验证的不同文章,但它们都依赖于不同的库,例如 OAuth 或 Owin,它们也提供自己的数据库交互方法。

问题是,我已经实现了与抽象存储库和实体的数据库交互,我想了解如何轻松简单地实现 api 身份验证,而不干扰我当前的设计

(顺便说一句,我的项目是建立在一个空的Web api 项目之上,因此它不附带所有引导程序和身份验证类)。

谢谢

c# database asp.net authentication asp.net-web-api

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

在Visual Studio代码中找不到Xunit命名空间

我正在使用Visual Studio代码进行.NET核心项目.我有一个ASP.NET核心项目,我想创建一个单独的单元测试项目,我创建了一个子文件夹并运行

dotnet new xunit
dotnet restore
Run Code Online (Sandbox Code Playgroud)

当我试图从cli"dotnet build""dotnet run"运行它时它运行成功,但是在visual studio中,它说它无法找到命名空间Xunit

在此输入图像描述 在此输入图像描述

这是非常奇怪的,因为到目前为止Visual Studio代码对我来说工作正常,它从来没有依赖的问题,它只与Xunit有这个问题.

有谁熟悉这个问题?

c# xunit visual-studio-code

5
推荐指数
4
解决办法
4245
查看次数

预计会出现错误,但代码可以正常编译

鉴于此代码,

interface TaskStartedEvent {
    type: "started",
    task: string
}

interface TaskLogEvent {
    type: "log",
    task: string,
    message: string
}

interface TaskFailedEvent {
    type: "failed",
    task: string,
    error?: string
}

interface FreeLog {
    message: string | Error,
    meta?: unknown
}

interface UndefinedTask {
    task?: undefined
}

type TaskEvent = TaskStartedEvent | TaskLogEvent | TaskFailedEvent;
type RuntimeEvent = (FreeLog & UndefinedTask) | TaskEvent;

function foo(ev: RuntimeEvent) {
    console.log(ev);    
}
foo({ message: "bar", type: "log" });
Run Code Online (Sandbox Code Playgroud)

为什么 Typescript 编译器在这里没有失败?

我传递了一个type字段,所以它不能是一个(FreeLog …

typescript

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

角料 2 md-card 宽度

我遇到了 md-card 组件的问题

        <md-card>
            <img height="200" width="200" md-card-image src="/resources/{{odd?.image?.path}}" />
            <md-card-content>
                <button md-button>{{odd?.object?.name}}</button>
            </md-card-content>
        </md-card>
Run Code Online (Sandbox Code Playgroud)

我有这个代码,它创建了一张卡片,里面有一个图像,图像下面有一些文字。我希望图像的大小为 200x200 并且我希望卡片完全包裹图像,但相反的情况发生了,卡片填满了页面的整个宽度,因此,图像拉伸到卡片的大小

在此处输入图片说明

如果我从 img 标签中删除 md-card-image 属性,它会以 200x200 显示图像,但 md-card 仍然被拉伸。

在此处输入图片说明

我怎样才能保持我想要的图像大小并使 md-card 环绕它?

html css angular-material2 angular

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

GitLab在CI中拉出子模块

我有一个利用GitLab CI的GitLab项目。该项目还使用子模块,该项目及其子模块都在同一个GitLab帐户下。

这是我的.gitmodules档案

[submodule "proto_contracts"]
    path = proto_contracts
    url = https://gitlab.com/areller/proto_contracts.git
Run Code Online (Sandbox Code Playgroud)

我在.gitlab-ci.yml文件中也有这部分

variables:
  GIT_SUBMODULE_STRATEGY: recursive
Run Code Online (Sandbox Code Playgroud)

但是,当我运行配置项时,出现此错误

fatal: could not read Username for 'https://gitlab.com': No such device or address
Run Code Online (Sandbox Code Playgroud)

项目和子模块都在私有存储库中,因此您会被提示进行身份验证,但是正如我已经提到的,项目和子模块在同一帐户下,运行者的工作之一是克隆原始存储库

在此处输入图片说明

因此,奇怪的是它无法到达子模块。有没有解决的办法?

git-submodules gitlab gitlab-ci gitlab-ci-runner

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

Go Dep - 与供应商同步 Gopkg.toml

有没有办法创建或同步Gokpkg.toml我在.go文件中导入的包?如果 myGopkg.toml为空并且我运行dep ensure,它会将我在代码中导入的所有包下载到vendor文件夹中,但不会更新Gopkg.toml文件。当我不得不将不使用包管理器的遗留项目迁移到dep以最简单的方式使用时,只需创建一个Gopkg.toml包含我已经导入的所有包的最新版本而不是dep ensure -add ...为每个包手动运行的项目. 有这样的命令吗?

dep go

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

Terraform - 加密数据库实例强制替换

我在 AWS 中有一个使用 terraform 创建的 postgres RDS 实例。

resource "aws_db_instance" "..." {
  ...
}
Run Code Online (Sandbox Code Playgroud)

现在我尝试通过添加来加密该实例

resource "aws_db_instance" "..." {
  ...
  storage_encrypted = true
}
Run Code Online (Sandbox Code Playgroud)

但当我运行时terraform plan,它说它将强制更换

# aws_db_instance.... must be replaced
...
~ storage_encrypted                     = false -> true # forces replacement
Run Code Online (Sandbox Code Playgroud)

如何防止 terraform 替换我的数据库实例?

amazon-web-services amazon-rds terraform

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