小编Sta*_*tan的帖子

是否可以查询ExpandoObject列表?

我想知道是否可以使用常规LINQ查询ExpandoObject?原因是我有动态ExpandoObject但我需要先进行一些查询才能进一步传递.

它有一些永远保留的属性Id,Notes但也有一些我无法控制的动态属性.

这是我的列表看起来像

[
  {
    "Id": 1,
    "FileId": 1,
    "Notes": "",
    "1": "12.02.1991"
  },
  {
    "Id": 2,
    "FileId": 2,
    "Notes": "",
    "1": "12.02.1991"
  }
]
Run Code Online (Sandbox Code Playgroud)

如您所见,我有静态项目,然后确保每个项目动态键都成为该项目属性.在这个例子中1是关键而且12.02.1991是价值

var generatedItems = new List<object>();

foreach (var item in items)
{
    var modifiedItem = new List<KeyValuePair<string, object>>
    {
        new KeyValuePair<string, object>("Id", item.Id),
        new KeyValuePair<string, object>("FileId", item.FileId),
        new KeyValuePair<string, object>("Notes", item.Notes)
    };
    modifiedItem.AddRange(item.Fields.Select(field => new KeyValuePair<string, object>(field.Key, field.Value)));

    generatedItems.Add(ConvertToExpandoObjects(modifiedItem)); // Here I construct object from …
Run Code Online (Sandbox Code Playgroud)

c# linq dynamic expandoobject

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

Visual Studio Online Git - 如何确保/包被忽略?

我的.gitignore工作是否合作?我将packages文件夹添加到它,它仍然希望在每次提交时提交我的所有包.

我现在正在做的是在每次提交时排除包文件夹,这是非常可怕的.我错过了什么,或者它是Visual Studio/Visual Studio在线Git系统中的错误?

的.gitignore

# NuGet Packages Directory
## TODO: If you have NuGet Package Restore enabled, uncomment the next line
packages/
Run Code Online (Sandbox Code Playgroud)

图片

在此输入图像描述

git gitignore visual-studio azure-devops

5
推荐指数
2
解决办法
4077
查看次数

XSP可以运行ASP.NET 4.5吗?

我一直试图在Mono下启动MVC5(取决于.NET 4.5)几天,并没有成功.

组态

  • 清洁安装最新的Lubuntu
  • 没有以前的XSP/Mono
  • 从最新的git源编译并安装XSP/Mono
  • 单声道版本:3.2.7

问题

当我xsp4在它显示的任何文件夹上运行时Version Information: 3.2.7 (master/1eef047 C nov 28 18:16:30 EET 2013); ASP.NET Version: 4.0.30319.17020.


最新的Mono版本支持.NET 4.5,是否支持XSP?
如果是这样,我怎样才能确保它使用的是4.5而不是4.0?

即使我直接从Mono 4.5文件夹(/usr/lib/mono/4.5/xsp4.exe)运行XSP,它也显示ASP.NET版本为4.0.

此外,XSP配置行/usr/bin/xsp4看起来像这样.我很困惑.

#!/bin/sh
exec /usr/bin/mono $MONO_OPTIONS "/usr/lib/mono/4.5/xsp4.exe" "$@"
Run Code Online (Sandbox Code Playgroud)

c# asp.net mono xsp

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

MongoDb C#驱动程序是否适用于LINQ和动态文档?

我想知道我是否甚至可以在未映射的mongo文档上使用LINQ并且是完全动态的.原因是我有ITEM aggrigator,它包含未知的键和值.这只是我之所以选择no-sql解决方案的唯一原因,因为EAV + SQL看起来很慢而且有点过分.

我插了超过100万的文件到我的test收藏有oneten与它的随机数据字段.现在,我正在尝试将其取回并使用本机Mongo查询,当然.使用LINQ并不是那么多.我在这里做错了吗?

错误

mscorlib.dll中发生了未处理的"System.FormatException"类型异常

附加信息:输入字符串的格式不正确.

private static List<BsonDocument> Get(string query)
{
    var client = new MongoClient("mongodb://localhost");
    var server = client.GetServer();
    var db = server.GetDatabase("test");
    var collection = db.GetCollection("items");
    var collectionQuery = collection.AsQueryable();

    var result = collection.Find(Query.EQ("Six", 7962)).ToList(); // THIS WORKS
    //var result = collection.AsQueryable().Where(x => x["Six"] == 7962).ToList(); // ERROR

    return result;
}
Run Code Online (Sandbox Code Playgroud)

.net c# linq mongodb mongodb-.net-driver

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

针对同一集合中的不同文档的不同TTL?

我正在AdministratorSession为我的会话使用集合.当他点击"记住我"时,我希望在3600分钟后删除会话文档,否则30分钟.可能吗?如果没有那么我的选择是什么?

我在这里尝试使用简单的方法,但它创建索引并将TTL值设置为创建的第一个文档.例如,如果一个文档ttl设置为30并且在3600旁边,则它们将在30分钟后被删除.

这是我目前如何实现这一目标.

public AdministratorSession Add(string ip, bool remember)
{
    var random = new Random();

    var session = new AdministratorSession
    {
        StartDateTime = DateTime.Now,
        Hash = EncryptionService.Sha256(DateTime.Now.Ticks.ToString(CultureInfo.InvariantCulture)),
        Salt = EncryptionService.Md5(ip + random.Next(0, 1000))
    };

    var db = DbContext.GetDatabase();
    var collection = db.GetCollection<AdministratorSession>("AdministratorSession");

    collection.EnsureIndex(IndexKeys.Ascending("StartDateTime"), IndexOptions.SetTimeToLive(TimeSpan.FromMinutes(remember ? 36000 : 30)));
    collection.Insert(session);

    return session;
}
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-.net-driver

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

为什么在控制器上下文之外获取路由值如此困难?

我不明白这背后的原因是什么,为什么在Request控制器内部获取路由值如此容易,但几乎不可能在控制器上做同样的事情HttpContext.Current.Request

也许我只是不知道更好的方法,但它确实存在。有人可以确认这是在控制器外部获取路线数据的唯一方法吗?

例子

[Route("{id}"), HttpGet]
public IHttpActionResult Test()
{
    // Simple and easy
    var route1 = Request.GetRouteData().Values["id"];

    // Wat. This is also ~6 times slower
    var routeValues = (IHttpRouteData[]) HttpContext.Current.Request.RequestContext.RouteData.Values["MS_SubRoutes"];
    var route2 = routeValues.SelectMany(x => x.Values).Where(x => x.Key == "id").Select(x => x.Value).FirstOrDefault();

    return Ok(route1 == route2); // true
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net routes asp.net-web-api asp.net-web-api2

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

当第一个失败时,是否可以停止检查进一步的验证?

否则,我总是需要null在执行任何其他验证之前检查该值是否存在.如果我有许多正在使用的自定义检查,这有点烦人Must().

我放在NotEmpty()它的最顶层因此它已经返回假,是否有可能停在那里?

RuleFor(x => x.Name)
    .NotEmpty() // Can we not even continue if this fails?
    .Length(2, 32)
    .Must(x =>
    {
        var reserved = new[] {"id", "email", "passwordhash", "passwordsalt", "description"};
        return !reserved.Contains(x.ToLowerInvariant()); // Exception, x is null
    });
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-mvc fluentvalidation fluentvalidation-2.0

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

v1,v2等中的Sails.js组路由

我的Sails.js有API,我想将所有路由都包装在中v1。可能吗?

这是我尝试过的方法,但是不起作用。

routes.js

'use strict';

module.exports.routes = {
    '/v1': {                                //
      'get /cron': 'CronController.start'   // THIS DOES NOT WORK
    },                                      //

    'get /cron': 'CronController.start'     // this works
};
Run Code Online (Sandbox Code Playgroud)

javascript routes nested-routes sails.js

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

如何显示中间线

我有一个方便的脚本正在运行ab并在之后生成绘图.然而,有一个问题,它向我展示了每一点(这是好的),但是我想看到它们之间的平均"线".我将在图片中展示更多内容.

那么有没有办法在中间添加中值/中度游侠?

脚本

#!/usr/local/bin/gnuplot

set terminal jpeg size 1280,720
set size 1, 1
set output OUTPUT
set title OUTPUT
set key left top
set grid y
set xdata time
set timefmt "%s"
set format x "%S"
set xlabel 'seconds'
set ylabel "response time (ms)"
set datafile separator '\t'
plot INPUT every ::2 using 2:5 title 'response time' with points
exit
Run Code Online (Sandbox Code Playgroud)

Ouptut

产量

输出(我希望有什么)

OUTPUT2

gnuplot

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

从docker复制到CI构建内的主机

我想知道是否有可能以某种方式将文件/文件夹从docker内部复制到主机,但是复制本身是在docker内部执行的.

原因是,例如:

  • 将文件提交到repo
  • CI开始了
  • Docker安装依赖项,构建网站文件
  • 网站文件从docker复制到/ var/www/my-website(host)

当我在寻找解决方案时,我已经看到了很多这个命令,docker cp <containerId>:/file/path/within/container /host/path/target但这是从HOST执行的.我想让整个过程自动化.

当然可能的解决方案是不使用docker而是使用直接SSH,这就是我现在正在做的事情,但这不是IMO的最佳选择.

这是我的.gitlab-ci.yml文件示例,它将解释我想要实现的目标.

image: ubuntu:16.04

build:
    stage: build
    script:
        - apt-get update
        - apt-get upgrade -yy
        - apt-get install hugo -yy # Static site generator
        - hugo build # Build the website
        - cp -R ./build/* /var/www/my-website/ # Copy to the web root
Run Code Online (Sandbox Code Playgroud)

这是我的跑步者配置

[[runners]]
  name = "DOCKER-TEST"
  url = "https://gitlab.com/ci"
  token = "{{token}}"
  executor = "docker"
  [runners.docker]
    tls_verify = false
    image = "ubuntu:16.04"
    privileged = …
Run Code Online (Sandbox Code Playgroud)

continuous-integration docker gitlab-ci

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