小编Los*_*nos的帖子

Nhibernate QueryOver左外连接条件

我在网上找到了一些资源,但实际上并没有能够对这个资源进行排序

基本上我有一个查询,它有两个左外连接

var query = session.QueryOver<NewsPost>(() => newsPostAlias)
                    .Left.JoinQueryOver(x => newsPostAlias.PostedBy, () => userAlias)
                    .Left.JoinQueryOver(x => newsPostAlias.Category, () => categoryAlias)
                        .Fetch(x => x.PostedBy).Eager
                        .Fetch(x => x.Category).Eager
                    .Where(x => !x.Deleted);
Run Code Online (Sandbox Code Playgroud)

这可能是一种无效的方式,但似乎没有中断.现在我要做的是在两个已经离开了连接的表上,我想确保这两个表中的Deleted列都是false.

然而,每当我添加该限制时,结果仅在填充新闻帖子中的外键列时才返回,但由于这是可以为空的,为什么我将其作为左外连接,这是不可取的.

什么是基本上制作它的最佳方式

.Where(x => !x.Deleted && !x.PostedBy.Deleted && !x.Category.Deleted);
Run Code Online (Sandbox Code Playgroud)

我已经研究了多个查询,期货和分离,我不确定应该采取什么方法,显然我可以想到一些方法(我的直觉告诉我的方法)这样做但是方法是什么?:)

谢谢

编辑 - 接受的答案修改

return session.QueryOver(() => newsPostAlias)
                    .Fetch(x => x.PostedBy).Eager
                    .Fetch(x => x.Category).Eager
                .Left.JoinQueryOver(() => newsPostAlias.PostedBy, () => postedByAlias)
                .Left.JoinQueryOver(() => newsPostAlias.Category, () => categoryAlias)
                .Where(() => !newsPostAlias.Deleted)
                .And(() => newsPostAlias.PostedBy == null ||  !postedByAlias.Deleted)
                .And(() => newsPostAlias.Category == …
Run Code Online (Sandbox Code Playgroud)

c# nhibernate hibernate queryover

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

使用重命名的类型在C#中键入重命名

using IdType = System.Guid;
using RowType = System.Tuple<System.Guid, object>
Run Code Online (Sandbox Code Playgroud)

作品.而

using IdType = System.Guid;
using RowType = System.Tuple<IdType, object>
Run Code Online (Sandbox Code Playgroud)

不编译.
IdType在第一行声明不能再使用using它似乎.

有没有解决的办法?

.net c#

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

为什么Powershell的Format-List *不输出所有属性

当我做一个属性时... | Format-List,其中一个属性是Path.
当我执行此操作时,... | Format-List *Path属性丢失了。
为什么?

[DBG]: PS C:\Directory>> $MyInvocation.MyCommand | Format-List

Name        : 
CommandType : Script
Definition  : $MyInvocation.MyCommand | Format-List
Path        : 

[DBG]: PS C:\Directory>> $MyInvocation.MyCommand | Format-List *

HelpUri            : 
ScriptBlock        : $MyInvocation.MyCommand | Format-List *
Definition         : $MyInvocation.MyCommand | Format-List *
OutputType         : {}
Name               : 
CommandType        : Script
Visibility         : Public
ModuleName         : 
Module             : 
RemotingCapability : PowerShell
Parameters         : 
ParameterSets      : {}
Run Code Online (Sandbox Code Playgroud)

powershell

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

如何将ReadLine循环重构为Linq

我想使下面的代码更清洁(在旁观者的眼中).

var lines = new StringReader(lotsOfIncomingLinesWithNewLineCharacters);
var resultingLines = new List<string>();

string line;
while( (line = lines.ReadLine() ) != null )
{
    if( line.Substring(0,5) == "value" )
    {
        resultingLines.Add(line);
    }
}
Run Code Online (Sandbox Code Playgroud)

喜欢的东西

var resultingLinesQuery = 
    lotsOfIncomingLinesWithNewLineCharacters
    .Where(s=>s.Substring(0,5) == "value );
Run Code Online (Sandbox Code Playgroud)

希望我已经说明我不希望将结果作为列表(不填充内存)并且StringReader不是必需的.

有一个天真的解决方案来创建扩展并在那里移动ReadLine但我感觉可能有更好的方法.

c# linq

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

在NuGet中更新TestFramework后无法运行测试

An exception occurred while invoking executor 'executor://mstestadapter/v2': Constructor on type 'Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.UnitTestRunner' not found.

mstest visual-studio nuget visual-studio-2017

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

autohotkey if带有和不带有大括号的语句

我不了解Autohotkey If和Autohotkey之间的区别。If(...)
根据我发现的所有内容,If(...)其行为均符合“预期”的要求,但是我的代码无法正常工作。

下面不起作用。似乎中的语句If从不评估,%TimeString%从不设置且不输出任何内容:

CapsLock & T::
    Input Key, L1
    If (Key=T)
    {
        FormatTime, TimeString,, HHmm
    }
    Send %TimeString%   
Run Code Online (Sandbox Code Playgroud)

下面工作,%TimeString%设定的时间是输出。

CapsLock & T::
    Input Key, L1
    If Key=T
        FormatTime, TimeString,, HHmm
    Send %TimeString%   
Run Code Online (Sandbox Code Playgroud)

autohotkey

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

任何人都使用了 specflow 的批准测试?

有没有人将 Specflow 与ApprovalTests一起使用?

我发现它限制了每个 NUnit 测试只能批准一个文件,因此每个场景只能有一个批准的文件。即使您使用场景大纲,情况也是如此。

这意味着我通常必须连接文件并批准一个代表大量独立测试结果的大文件。

我想知道有没有人找到更好的方法?

specflow approval-tests

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

Visual studio(2017)构建工具150

当我尝试编译一些C++代码时,我得到了错误

Code:   
    MSB8020
Description:    
    The build tools for v150 (Platform Toolset = 'v150') cannot be found. 
    To build using the v150 build tools, please install v150 build tools.  
    Alternatively, you may upgrade to the current Visual Studio tools by 
    selecting the Project menu or right-click the solution, and then 
    selecting "Retarget solution".
Run Code Online (Sandbox Code Playgroud)

我不能选择"Retarget解决方案",因为没有这样的.
我已经打开了Visual Studio安装程序,但最新的工具集有141个.

如何降级构建工具要求或如何"重新定位解决方案"?

TL; DR

我通过尝试编译Autohotkey_L来进入这种情况.通过安装HyperV虚拟机并下载微软提供的开发机器,我完全干净了.它已包含Visual Studio 2017社区版.它不能变得更干净或更新.

autohotkey visual-c++

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

aspnetmvc模型已更新但不更新控件

hejdig.

在Aspnetmvc2中,我有一个模型对象,我发送到View.视图中的控件未使用该值更新.为什么?我陷入了什么明显的陷阱?

风景:

<%:Html.TextBox(
    "MyNumber", 
    null == Model ? "1111" : Model.MyNumber ) %>
<%:Model.MyNumber%>
Run Code Online (Sandbox Code Playgroud)

首先通过Get获取.文本框中的"1111"值手动更新为"2222".我们将表单发布到控制器,控制器将"2222"附加到Model对象并再次将其发送到视图.

控制者:

    [HttpGet]
    public ActionResult Index()
    {
        return View();
    }
    [HttpPost]
    public  ActionResult Index( MyModel myModel)
    {
        myModel.MyNumber += " 2222";
        return View(myModel);
    }
Run Code Online (Sandbox Code Playgroud)

总而言之,我们得到的输出如下:

<input id="MyNumber" type="text" value="1111">
1111 2222
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,控件不使用Model的属性,而是回退到Aspnetmvc中不存在的w视图状态.
(Razor也是如此.)

asp.net-mvc

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

double.ToString截断最后2位数,而我仍然可以在调试时看到它们

如何获得double.ToString 有时不会截断最后的数字.

如果我在Visualstudio立即窗口或Quickwatch中显示双精度,我会看到17位小数.当我将它转换为字符串时,我看到15.
可能有一个很好的理由,但我的问题是如何解决它.

? 0.87912328514094507
0.87912328514094507
? 0.87912328514094507.ToString()
"0,879123285140945"
Run Code Online (Sandbox Code Playgroud)

Win7 fwiw上的Dotnet 4.6.2.

.net c#

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