在PostgreSQL中,如何在2D数组中选择一些值?
例如,如果我想将数据字段聚合到一个数组中,我会使用ARRAY()构造函数或array_agg函数,例如
ARRAY(SELECT s.name FROM myschema.mytable s)
Run Code Online (Sandbox Code Playgroud)
我如何选择说两个值到二维数组中,即
2DARRAYFUNCTION(SELECT s.name, s.id FROM ...)
Run Code Online (Sandbox Code Playgroud) 我正在为我们的业务创建一个流程,它从数据库中获取一些数据(A),对数据进行一些处理,然后将其复制到另一个数据库中的另一个表中(B).我们处理的数据量很大,我们预计此过程需要很长时间(数周).
对于使用WCF这类任务来说,这是一个明智的设计选择吗?这样我认为我可以使用某种客户端应用程序/ Web前端(业务的其余部分可以使用)来"查询"/显示整个导入过程的进度.我还想让客户能够通过服务启动/暂停/停止导入过程.
这可以在WCF中使用吗?这是否是正确的选择?我想在某些方面,这需要像常规Windows服务一样(我只是认为通过WCF通过某些方法"查询"导入的进度会更容易吗?)
另外,如果一个用户试图同时启动/停止导入过程等,我是否会遇到问题?单例模式是否适用于确保每个人都使用相同的单一导入过程?
任何想法/想法都非常感谢.
我需要在完成TFS 2010中的构建时发送一封电子邮件,其中详细说明了与作为此构建的一部分编译的签入相关联的工作项.通过使用associatedChangesets构建工作流中可用的变量,这没有问题.
但是,在生产环境中,我们会将更改从Development分支合并到Release分支.在这一点上,构建认为那里只有一个变化 - 这就是前面提到的开发与发布的合并.显然,这是相当无用的,因为我们需要找出在合并的分支中所做的更改以及相关的工作项.
有谁知道如何使用TFS 2010 API实现这一目标?从API的角度来看,它似乎相当糟糕.我知道你可以扩展VS2010中的合并历史节点,但显然这并不好,因为这些数据需要以编程方式收集,以便发送报告电子邮件.
是否可以根据会话中的某些值改变MVC中的输出缓存?我已经阅读了很多关于使用varybycustom功能并覆盖Global.asax中的GetVaryByCustomString的内容,但此时会话不可用.
public override string GetVaryByCustomString(HttpContext context, string custom)
{
if (custom == "somekey")
//Want to check the session here (but it isn't available).
return base.GetVaryByCustomString(context, custom);
}
Run Code Online (Sandbox Code Playgroud)
我理解这是因为会话直到稍后在请求管道中才创建.
我担心的是,如果不根据用户的会话改变缓存,页面(根据用户在会话中的内容而改变,具有特定于该用户的其他HTML等)将被缓存(因为URL是相同的)并且由我们的负载均衡器,代理服务器等提供服务,然后在页面上与其他人的会话信息一起提供给其他请求!
URL相同的原因是用户以"访客"身份进入,输入一些信息(POST),这会被验证并存储在会话中,然后将它们重新定向回同一页面(现在应该是根据会话数据特定于用户).
页面本身应该正常缓存,因为如果"访客"访问相同的网址,它应该每次都提供相同的"标准"页面.
有可能以这种方式改变缓存吗?
使用ASP.Net MVC,我发布了一个动作(然后我将数据库地址添加到数据库表等)
我需要重新定向到引荐来源网址,但还需要在引荐来源网址的查询字符串中添加内容.可以从许多地方调用此操作,因此我无法重定向到当前控制器中的操作.
如何重定向到引用者并向查询字符串添加内容(请记住引用者可能已经具有我需要保留的查询字符串值).
[HttpPost]
public ActionResult MyAction(MyModel model)
{
//Do stuff.
return new RedirectResult(Request.UrlReferrer.ToString()); // + query string value?
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
在TFS 2010中创建新的构建定义时,我们指定要构建的项目或解决方案(在定义的"过程"部分的"必需 - >要构建的项目"部分下).
有没有办法获得在工作流范围内构建的解决方案的名称?也就是说,里面有这个信息的变量,我可以在工作流程的其他地方传递给自定义代码活动吗?
我在PostgreSQL的hstore类型上使用%%运算符,它将hstore(有效键值类型)转换为数组,其元素交替{{key,value},{key value}}.
当我想返回这些扁平hstores的数组时,我得到了这个错误:could not find array type for data type text[]由于PostgreSQL缺乏对数组数组的支持.
从好奇的角度来看,有谁知道为什么不支持这些?更重要的是,是否有针对这种情况的解决方案?
目前我将结果连接成一个字符串(逗号分隔)并在应用程序(C#和NPGSQL)端解析它们.但是,这种方法感觉不太对,我希望能够将行读回作为.NET数组的数组或键值数组等.
非常感谢.
根据 ASP.Net Core docs,会话状态的行为已经改变,因为它现在是非锁定的:
会话状态是非锁定的。如果两个请求同时尝试修改会话的内容,最后一个请求会覆盖第一个请求。Session 是作为一个连贯的 session 来实现的,这意味着所有的内容都存储在一起。当两个请求试图修改不同的会话值时,最后一个请求可能会覆盖第一个请求所做的会话更改。
我的理解是,这与 .Net Framework 中会话的行为不同,其中用户的会话根据请求被锁定,因此无论何时读取/写入它,您都不会覆盖另一个请求的数据或读取过时的数据,对于该用户。
我的问题:
有没有办法在 .Net Core 中重新启用用户会话的每个请求锁定?
如果没有,是否有可靠的方法来使用会话来防止给定用户重复提交数据?举一个具体的例子,我们有一个支付流程,该流程涉及用户从外部托管的 ThreeDSecure (3DS) iFrame(支付卡安全流程)返回。我们注意到有时(以某种方式)用户在 iFrame 中多次提交表单,我们无法控制。因此,这会触发对我们应用程序的多个回调。在我们之前的 .Net Framework 应用程序中,我们使用会话来指示付款是否正在进行中。如果在会话中设置了此标志并且您再次点击 3DS 回调,应用程序将阻止您继续。然而,现在似乎因为会话没有被锁定,当这些几乎同时发生的重复回调发生时,线程 'A' 设置 '
既然会话的工作方式发生了变化,那么处理访问同一会话的同时请求有哪些好方法?
我有以下查询:
SELECT s.id,
s.name,
s.prom,
s.some_other_field,
... many more fields also
FROM mytable s
INNER JOIN (on some other tables etc.)
Run Code Online (Sandbox Code Playgroud)
在有超过6个具有相同名称(s.name)的记录的情况下,我想将这些项组合在一起作为一行(我不关心将哪些其他数据分组到该行,即第一条记录那个小组会很好).
这在Postgres有可能吗?我想这是一个条件组,从某种意义上说,我想将同名出现超过6次的记录分组,同时正常返回所有其他记录.
非常感谢任何帮助 - 谢谢!
我在postgreSQL中使用regex_replace并尝试去掉字符串中不是字母或数字的任何字符.但是,使用这个正则表达式:
select * from regexp_replace('blink-182', '[^a-zA-Z0-9]*$', '')
Run Code Online (Sandbox Code Playgroud)
返回'blink-182'.连字符没有被删除,并且没有像我期望的那样被替换为'''.
如何修改此正则表达式以替换hypen - 我已经测试了许多其他字符(!,.#)并且它们都被正确替换.
有任何想法吗?
我已经掌握了Ajax minifier,以便将一些JS和CSS文件缩小为构建/打包/部署过程的一部分.它是一个很棒的工具,完全符合我们的需要.但是,将其集成到我们的构建/部署过程中非常困难.
理想情况下,我们只有在执行TFS 2010构建之一(即在开发机器上不是本地(Ctrl + Shift + B jobbie)构建)时才运行此工具.此外,我们希望将此方案中当前的"非缩小"文件替换为缩小的文件(即,在相同的文件名下),而不是加载名为".min.js"等的其他文件.
经过大量阅读后,我认为关键是工作流程中的自定义构建任务 - 但我不知道如何处理这个问题 - 特别是因为我希望缩小将直接从我们的版本中删除的文件作为TFS 2010构建的一部分,在TFS中分支(即不在某人的本地工作空间中).
这是我发现的最接近的讨论,我想要实现的目标:Microsoft Ajax Minifier - TFS 2010工作流 - TFS Build中的AjaxMin
我相信我会在构建工作流程中需要一个自定义代码活动,但不知道如何创建一个来解决这个问题.任何人都可以对部署之前允许缩小的过程有所了解吗?
tfs team-build visual-studio-2010 tfs2010 microsoft-web-deploy
c# ×4
postgresql ×4
.net ×3
sql ×3
tfs2010 ×3
database ×2
team-build ×2
.net-core ×1
arrays ×1
asp.net ×1
asp.net-core ×1
asp.net-mvc ×1
build ×1
merge ×1
outputcache ×1
plpgsql ×1
regex ×1
tfs ×1
wcf ×1