一些LINQ查询仍然困扰着我.
对于包含两列,'Page'和'Date'的表'Hits',我想找到在定义的时间片段中具有最多行的页面.
在SQL中我会使用这个:
SELECT TOP 10
[Page]
,COUNT([Page]) as Number
FROM dbo.[Hits]
WHERE [Date] >= CONVERT(datetime,'14 Jan 2009')
AND [Date] < CONVERT(datetime,'15 Jan 2009')
Group BY [Page]
Order by Number DESC
Run Code Online (Sandbox Code Playgroud)
在LINQ我不知道如何处理这个问题,任何人都可以帮助我吗?我尝试使用linqer转换它,但它只显示此表达式的错误.
在互联网上,我看到很多使用它的代码.访问类的本地成员,如下所示:
private String _whatever;
public String Whatever
{
get
{
return this._whatever;
}
set
{
this._whatever = value;
}
}
public void DoSomething()
{
String s = this.Whatever;
this.DoSomething();
}
Run Code Online (Sandbox Code Playgroud)
(不要指望代码做一些合理的事情.我只是想为"this"展示一些不同的用途.)
我想知道为什么要这样做?为源代码添加更多清晰度?
还是只是浪费空间?
在MVVM应用程序中,我动态地想要显示可在运行时更改的函数的按钮.从技术上讲,这并不是那么困难,在我的ViewModel中,我有一个可观察的RelayCommands集合:
public ObservableCollection<RelayCommand> CustomCommands {get;set;}
Run Code Online (Sandbox Code Playgroud)
现在在Xaml中我可以将ListBox绑定到此Collection:
<StackPanel Orientation="Horizontal">
<ListBox ItemsSource="{Binding CustomCommands}">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<wpfhlp:RelayButton DataContext="{Binding}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
乍一看,这看起来很有效.
我的问题是:tabstop命令被破坏了.我希望用户能够从按钮跳到按钮,但是ListBox不是按钮,而是使用箭头键而不是tab来选择按钮.
我需要ListBox能力绑定到一个集合,但我不需要任何其他的列表框功能.
是否有其他面板而不是我可以使用的ListBox?
或者我可以以某种方式禁用ListBox函数,以便它只显示包含的项目,而无法在ListBox中选择它们?
我用prism v4和MEF来加载我的模块.我的模块包含一些视图(MVVM),它们由MEF自动加载到ItemsControl/NavigationRegion中.
这很好用,所有项目都显示在ItemControl中.但我不喜欢他们表现的顺序.一个模块可能包含多个项目,因此更改模块加载顺序本身是不够的.
如何在ItemsControl中对不同的视图进行排序?是否有办法按某些财产对它们进行排序?
由于StockTraderRI示例中的属性,我使用棱镜V4,MEF和探索.
所以我让我的prism/mvvm/mef程序运行良好,用户在应用程序中输入数据,然后关闭应用程序(或关闭计算机).
如何通知程序关闭/计算机关闭的View(模型),以便它可以保存用户数据,也可以询问是否应保存这些数据?
关闭程序关闭的数据肯定是要避免的,并且在用户的每个按键上保存内容是没有意义的.
我有一个使用c ++/cli托管dll的ac#程序.该DLL包含许多遗留代码,包含相当多的win32窗口.
问题是,dll中的窗口需要比平均咳嗽更多的堆栈空间.由于这些不是后台进程而是win32 api,我需要扩大GUI线程的堆栈大小(至少我认为dll中的win32 api将使用主gui进程).
所以我需要一种方法来扩大ac#process中GUI线程的大小.
由于我没有找到任何设置来实现这一点,我从命令行尝试了editbin/STACK,这是有效的.问题是,它只能在命令行中运行,如果我尝试将其作为post-build-step输入,由于某种原因二进制的堆栈大小不会改变,即使postbuild步骤正确执行并且没有抛出错误:(
editbin.exe /STACK:2097152 $(TargetPath)
Run Code Online (Sandbox Code Playgroud)
(Editbin.exe在路径中,输出窗口中没有错误)
那么如何为我的c ++ dll获得更多的堆栈大小?
[更新]
我注意到使用editbin.exe时出现问题.
这在命令行和后期构建步骤中都不起作用:
editbin.exe /STACK:2097152 c:\some\path\bin\release\app.exe
Run Code Online (Sandbox Code Playgroud)
这在命令行中有效,但不能作为构建步骤:
editbin.exe /STACK:2097152 app.exe
Run Code Online (Sandbox Code Playgroud)
但我需要它作为后期构建步骤.我试着把它放到一个批处理文件中,回显以确保调用和工作目录都可以,但它仍然不起作用.奇怪.
我有两个巨大的(> 100000项)PathGeometry集合我需要使用PathGeometry.Combine进行比较,如下所示:
List<PathGeometry> firstList;
List<PathGeometry> secondList;
[...]
foreach (PathGeometry pg1 in firstList)
foreach (PathGeometry pg2 in secondList)
{
PathGeometry intergeo = PathGeometry.Combine(pg1, pg2, GeometryCombineMode.Intersect, null);
if (intergeo.GetArea() > 0)
{
// do whatever with intergeo.GetArea()
}
}
Run Code Online (Sandbox Code Playgroud)
令我惊讶的是,PathGeometry是GUI的一部分并使用调度程序,它有时会导致问题,因为我的计算在没有GUI的情况下在一些后台线程中运行使用Parallel.ForEach()
所以我正在寻找一种没有连接到GUI的PathGeometry的替代品.
我的数字非常复杂,并为PathGeometry.Figures添加了很多PathFigures.
我自己从一些臃肿的政府xml文件创建那些PathGeometries,所以创建其他东西也没有问题.但是我需要一个函数来创建这些几何中的两个(不是相互添加)的交集,以获得两个几何所覆盖的区域,例如此图中的红色区域:

我正在寻找一种批量导出SQL Server表到csv文件的方法.
有一些使用sqlcmd或bcp的解决方案,但到目前为止,我找不到任何正确转义引号,逗号或换行符的解决方案.
例如,此命令创建一个不错的csv,但忽略了引号和逗号,这使得csv文件无法使用:
bcp MyDatabase..MyTable out c:\test.csv -c -T -t, -r\n -S MYPC
Run Code Online (Sandbox Code Playgroud)
从我的四行示例数据中,每行包含一些其他特殊字符,这将创建一个这样的文件:
1,contains " quote
2,contains , comma
3,contains ; semi
4,contains ' single quote
Run Code Online (Sandbox Code Playgroud)
由于引号和逗号,其他程序无法导入.当然,我可以改变分离器标签或管道符号,但是这不能解决真正的问题:无论分隔符是,如果它的数据存在,它会使导出文件不可用.
那么如何使用标准SQL工具(如BCP,sqlcmd或类似工具)批量导出批量数据到工作的csv文件?
为了在 xunit 中运行 Protractor 端到端测试,我想在 xunit 中结合Class Fixtures 和 Collection Fixtures。
我创建了一个集合装置DatabaseServerFixture[Collection]来运行数据库和服务器,因此数据库和 Web 服务始终可用于所有测试,并且数据库/服务器设置仅对所有测试进行一次,以加快执行速度。
我已经设置了一秒钟BrowserFixture在一个类中的所有测试之间共享一个浏览器实例,因为我希望能够并行运行来自不同类的测试,每个类都拥有自己的浏览器类。
问题是:我需要引用BrowserFixture在我的测试类中使用的 ,所以我不能引用DatabaseServerFixture. 并且由于DatabaseServerFixture从未引用过,因此未创建 => 没有数据库,因此所有测试都失败了。
我不需要能够DatabaseServerFixture从我的测试中访问,但我需要它在所有测试之前启动。即使我似乎没有在任何地方使用它,我如何让 xunit 启动它?
我尝试创建一个使用 的虚拟测试DatabaseServerFixture,但它没有为其他测试运行,所以它没有帮助。
在 angular 4.3 中,我想打开一个模态弹出窗口并显示一个嵌入的 pdf 文件,如下所示:https : //pdfobject.com/static.html
我使用了这个答案中的模态弹出组件,它可以很好地弹出。我的模态测试 html 如下所示:
<a class="btn btn-default" (click)="setContent();modal.show()">Show</a>
<app-modal #modal>
<div class="app-modal-header">
Testing pdf embedding
</div>
<div class="app-modal-body">
<div class="embed-responsive" *ngIf="ContentUrl">
<object [attr.data]="ContentUrl"
type="application/pdf"
class="embed-responsive-item">
<embed [attr.src]="ContentUrl"
type="application/pdf" />
</object>
</div>
<p><a [href]="ContentUrl">PDF Download</a></p>
</div>
<div class="app-modal-footer">
<button type="button" class="btn btn-default" (click)="modal.hide()">Close</button>
</div>
</app-modal>
Run Code Online (Sandbox Code Playgroud)
在我的组件中,我ContentUrl是这样设置的:
public ContentUrl: SafeUrl;
public setContent() {
this.ContentUrl = this._sanitizer.bypassSecurityTrustResourceUrl("/img/test.pdf");
}
Run Code Online (Sandbox Code Playgroud)
弹出窗口很好地打开,但它没有显示嵌入的 pdf。它甚至不会尝试从服务加载 url。下载链接运行良好,并询问是否应将 pdf 保存到光盘或打开。
我也尝试将 pdf 嵌入弹出窗口之外也无济于事。
我尝试了 Chrome、Edge 和 …
c# ×5
wpf ×3
mvvm ×2
prism ×2
.net-4.0 ×1
angular ×1
batch-file ×1
binding ×1
c++-cli ×1
coding-style ×1
csv ×1
dll ×1
end-to-end ×1
linq ×1
listbox ×1
mef ×1
pathgeometry ×1
pdf ×1
protractor ×1
shutdown ×1
sql ×1
sql-server ×1
testing ×1
this ×1
xunit ×1