我想知道是否可以使用常规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) 我的.gitignore工作是否合作?我将packages文件夹添加到它,它仍然希望在每次提交时提交我的所有包.
我现在正在做的是在每次提交时排除包文件夹,这是非常可怕的.我错过了什么,或者它是Visual Studio/Visual Studio在线Git系统中的错误?
# NuGet Packages Directory
## TODO: If you have NuGet Package Restore enabled, uncomment the next line
packages/
Run Code Online (Sandbox Code Playgroud)

我一直试图在Mono下启动MVC5(取决于.NET 4.5)几天,并没有成功.
当我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) 我想知道我是否甚至可以在未映射的mongo文档上使用LINQ并且是完全动态的.原因是我有ITEM aggrigator,它包含未知的键和值.这只是我之所以选择no-sql解决方案的唯一原因,因为EAV + SQL看起来很慢而且有点过分.
我插了超过100万的文件到我的test收藏有one以ten与它的随机数据字段.现在,我正在尝试将其取回并使用本机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) 我正在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) 我不明白这背后的原因是什么,为什么在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) 否则,我总是需要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
我的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) 我有一个方便的脚本正在运行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)
我想知道是否有可能以某种方式将文件/文件夹从docker内部复制到主机,但是复制本身是在docker内部执行的.
原因是,例如:
当我在寻找解决方案时,我已经看到了很多这个命令,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)