我们在本地使用Subversion,我们正在开发一个使用Fluent NHibernate的分支的项目,它在Github上托管.
我想它设置,以便单个svn checkout将检索构建项目所需的一切,但保持从github获取HEAD更新的能力.
有什么方法可以从Git存储库中提取代码,好像它是一个svn:external依赖项?我可以将.git文件夹检查到我们的Subversion存储库中,并在需要时运行git fetch,然后svn提交结果吗?
(早期的问题,递归(?)将LINQ谓词组合成单个谓词,与此类似但我实际上问了错误的问题......那里的解决方案满足了提出的问题,但实际上并不是我需要的问题.虽然不一样.诚实.)
鉴于以下搜索文本:
"keyword1 keyword2 ... keywordN"
Run Code Online (Sandbox Code Playgroud)
我想最终得到以下SQL:
SELECT [columns] FROM Customer
WHERE (
Customer.Forenames LIKE '%keyword1%'
OR
Customer.Forenames LIKE '%keyword2%'
OR
...
OR
Customer.Forenames LIKE '%keywordN%'
) AND (
Customer.Surname LIKE '%keyword1%'
OR
Customer.Surname LIKE '%keyword2%'
OR
....
OR
Customer.Surname LIKE '%keywordN%'
)
Run Code Online (Sandbox Code Playgroud)
实际上,我们将搜索文本拆分为空格,修剪每个标记,根据每个标记构造一个多部分OR子句,然后将这些子句一起进行AND运算.
我在Linq-to-SQL中这样做,我不知道如何根据任意长的子预测列表动态编写谓词.对于已知数量的子句,可以轻松地手动编写谓词:
dataContext.Customers.Where(
(
Customer.Forenames.Contains("keyword1")
||
Customer.Forenames.Contains("keyword2")
) && (
Customer.Surname.Contains("keyword1")
||
Customer.Surname.Contains("keyword2")
)
);
Run Code Online (Sandbox Code Playgroud)
简而言之,我需要一种技术,给定两个谓词,将返回使用提供的运算符组成两个源谓词的单个谓词,但仅限于Linq-to-SQL明确支持的运算符.有任何想法吗?
以下C#代码:
using System;
namespace TrimTest {
class Program {
static void Main(string[] args) {
Console.WriteLine(Environment.CommandLine);
Console.WriteLine(Environment.CommandLine.Trim('"'));
Console.ReadKey(false);
}
}
}
Run Code Online (Sandbox Code Playgroud)
产生以下输出:
"D:\Projects\TrimTest\TrimTest\bin\Debug\TrimTest.vshost.exe"
D:\Projects\TrimTest\TrimTest\bin\Debug\TrimTest.vshost.exe"
Run Code Online (Sandbox Code Playgroud)
除非我误读了文档:
从trimChars参数中所有出现的字符后保留的字符串将从当前String对象的开头和结尾删除.如果trimChars为null或为空数组,则会删除空格字符.
不应该从该输出中的第二个字符串中修剪尾部双引号?
下面的代码编译,运行,完全符合我的预期 - 当事件被引发时,GreetingPublisher调用bus.Publish() - 但是Moq设置没有匹配:
using Moq;
using NServiceBus;
using NUnit.Framework;
namespace MyProject.Greetifier.Tests {
[TestFixture]
public class GreetingPublisher_Bus_Integration_Tests {
[Test]
public void Greeting_Is_Published_To_Bus() {
var mockGreeter = new Mock<IGreeter>();
var mockBus = new Mock<IBus>();
mockBus.Setup(bus => bus.Publish<IMessage>(It.IsAny<IMessage>()))
.Verifiable();
var Greetifier = new GreetingPublisher(mockGreeter.Object,
mockBus.Object);
mockGreeter.Raise(m => m.Greet += null, "world");
mockBus.Verify();
}
}
public class HelloMessage : IMessage {
public string Name { get; set; }
public HelloMessage(string name) { this.Name = name; }
}
public class GreetingPublisher {
private …Run Code Online (Sandbox Code Playgroud) 我在我的一个API控制器上有一个POST方法,它接受一个字符串值:
public string Post([FromBody] string foo) {
return(fooOracle.ValidateFoo(foo) ? "success" : "failure");
}
Run Code Online (Sandbox Code Playgroud)
我正在使用帖子请求的正文发布到这个:
foo=123412341234
Run Code Online (Sandbox Code Playgroud)
(即,您可以通过提交浏览器表单以及使用HTTP客户端来启动常规HTTP POST)
在WebAPI的候选版本中,它已经默默地停止工作 - 它只是不再绑定foo.为了使代码正常工作,我必须用以下方法替换方法:
public string Post(FormDataCollection form) {
var foo = form.Get("foo");
return(fooOracle.ValidateFoo(foo) ? "success" : "failure");
}
Run Code Online (Sandbox Code Playgroud)
这可行,但它有点混乱,涉及比以前版本更多的管道测试.
我是否错过了一些微妙的变化,或者是否已弃用[FromBody]绑定语法而支持这种相当冗长的绑定语法?该属性仍然存在,但它真的不清楚它在RC版本中实际做了什么.
我如何设置Windows(或Visual Studio,或我的应用程序),以便当我通过从Visual Studio 2010中按F5运行控制台应用程序时,我可以使用我选择的字体而不是80x25标准CMD/DOS获得120x50布局窗口?
(甚至更好 - 有谁知道如何让VS在Console2或bash而不是cmd.exe中运行控制台应用程序?)
我正在寻找一种快速算法来确定给定2D阵列的特定最小属性 - 没有共同行或列的最小值之和.我敢肯定这必须有一个名字,但我不知道它叫什么.
我有一个字符串匹配系统,它将在空格上分割输入字符串并将其与搜索值的语料库(也在空格中分割)进行比较,并返回每个字符串中的标记之间的距离矩阵,我想减少通过采用不重复使用任何输入/输出令牌组合的最小距离组合,可以达到单个聚合距离.
例子:
{ 1, 2 } => 5 (either 1+4, or 3+2)
{ 3, 4 }
{ 0, 2 } => 6 (because 2+4 < 0+8)
{ 4, 8 }
{ 1, 0, 0 }
{ 0, 1, 0 } => 0
{ 0, 0, 1 }
{ 2, 3, 4 }
{ 3, 2, 4 } => 6 (2+2+2)
{ 4, 3, 2 }
Run Code Online (Sandbox Code Playgroud)
我一直使用的天真算法看起来像这样(C#):
public static int Minimux(this int[,] array) {
var xUsed = new …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Moq来测试WebAPI控制器和Redis数据库之间的集成,使用StackExchange.Redis客户端,并且无法解决如何在包含回调或其他一些断言的模拟异步方法上设置可验证的期望行为.
通常,我使用以下语法:
const string KEY = "some_key";
var db = new Mock<IDatabase>();
db.Setup(d => d.HashSetAsync(KEY, It.IsAny<HashEntry[]>(),It.IsAny<CommandFlags>()))
.Callback<RedisKey,HashEntry[],CommandFlags>((key, hash, flags) => {
hash.ShouldContain(entry => entry.Name == "customerid");
hash.ShouldContain(entry => entry.Name == "quotenumber");
})
.Verifiable();
Run Code Online (Sandbox Code Playgroud)
但是这给了我:
'Moq.Language.Flow.IReturnsThrows <StackExchange.Redis.IDatabase,System.Threading.Tasks.Task>'不包含'Verifiable'的定义,也没有扩展方法'Verifiable'接受'Moq.Language'类型的第一个参数可以找到.Flow.IReturnsThrows'(你是否缺少using指令或程序集引用?)
如果我改变db.HashSetAsync,以db.HashSet在Setup调用,它将按预期工作.似乎在常规方法上设置Callback会返回一个ICallbackResult但在异步方法调用上设置回调会返回IReturnsThrows- 而且我不确定如何将其中一个标记为可验证.有任何想法吗?
我想写一些像javascript中的confirm()一样的东西,但是我想自己编写它以便我可以为对话框设置外观.难以思考我将如何基本上强制javascript线程等待用户响应然后返回true或false.
我怎样才能进行多种排序
return (from p in _db.Pages where p.int_PostStatusId == 2 select p).OrderByDescending(m => m.int_SortOrder);
Run Code Online (Sandbox Code Playgroud)
我想通过int_PageId做订单吗?首先是int_SortOrder然后是int_PageId
c# ×3
linq ×2
moq ×2
.net ×1
algorithm ×1
async-await ×1
clr ×1
cmd ×1
composition ×1
console ×1
git ×1
git-svn ×1
github ×1
javascript ×1
layout ×1
linq-to-sql ×1
matrix ×1
modal-dialog ×1
nservicebus ×1
sql-order-by ×1
svn ×1
trim ×1
unit-testing ×1