我正在使用SSMS开发SQL脚本,它在数据库中进行了一些更改:
USE MyDatabase;
BEGIN TRANSACTION;
-- some statements
PRINT(N'#1');
IF (EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = N'dbo' AND TABLE_NAME = N'Table1' AND COLUMN_NAME = 'Table2_Id'))
BEGIN
ALTER TABLE [dbo].[Table1] DROP CONSTRAINT [FK_Table1_Table2_Table2_Id];
ALTER TABLE [dbo].[Table1] DROP COLUMN [Table2_Id];
DROP TABLE [dbo].[Table2];
PRINT(N'Table2 was dropped.');
END
PRINT(N'#2');
IF (NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = N'dbo' AND TABLE_NAME = N'Table2'))
BEGIN
CREATE TABLE [dbo].[Table2]
(
[Id] INT NOT NULL PRIMARY KEY IDENTITY,
[Number] INT NOT NULL UNIQUE, …Run Code Online (Sandbox Code Playgroud) 我想知道,有什么人面临案件,当AggregateException.InnerExceptions.Count> 1?
例如,TPL包装异常,这是在任务正文中引发的AggregateException.但是,当有多个内部异常时,我从未看过情况.
如何通过TPL实现这一目标?
如何使用任何 FCL(或其他广泛使用的库)类(样本将有用)?
我知道,有可能建立这样的实例AggregateException,但问题是关于实践.我问这个问题,因为我想了解,最好的办法是什么AggregateException.
无法通过证书验证解决问题.
有Web API服务器,它使用HTTPS来处理请求.服务器的证书具有以下认证路径:RCA(root) - > ICA(中间) - > Web API服务器.RCA,ICA和Web API服务器是同一Active Directory域的成员.
客户端应用程序(桌面,计算机加入同一域)用于HttpClient与服务器通信并支持两种方案:
两种方案都使用基本身份验
RCA和ICA证书分别放在"受信任的根证书颁发机构"和"中间证书颁发机构"中,用于本地计算机帐户.RCA证书是自签名的.
现在,当客户端连接到公司网络时,证书验证按预期工作,用户可以与Web API"对话".
当客户端断开连接(只有Internet连接可用)时,证书验证失败AuthenticationException("远程证书根据验证过程无效").
我不想完全关闭证书验证,但只需要告诉验证系统,这个特定证书是有效的.此外,客户端应用程序使用SignalR,它默认使用它自己的传输.因此,这和这不是选项.
为什么将RCA ICA证书放到"Trusted ..."和"Intermediate ..."文件夹中没有帮助?
有没有解决方法?
可能重复:
LINQ to Entities中的批量删除
我需要按条件删除一些实体.例如,删除数量小于1的所有订单商品:
var orderId = 10; // any order Id
context.OrderItems.RemoveWhere(item => item.OrderId == orderId && item.Quantity < 1.0);
Run Code Online (Sandbox Code Playgroud)
我知道,我可以选择这些项目,然后像这样一个一个地删除它们:
var itemsToRemove = context.OrderItems.Where(item => item.OrderId == orderId && item.Quantity < 1.0).ToArray();
foreach (var item in itemsToRemove)
context.OrderItems.Remove(item);
Run Code Online (Sandbox Code Playgroud)
但这是不太可能的,因为会有额外的工作.我错过了什么吗?
在类中有一堆相当方便的方法File,比如ReadAll***/ WriteAll***/ AppendAll***.
当我需要他们的异步对应物时,我遇到了很多情况,但它们根本不存在.
为什么?有任何陷阱吗?
我知道,这些方法可以轻松实现,但有没有理由不在开箱即用的框架中实现它们?
我正在RealProxy.NET Core 中寻找替代品,这个问题将我转发到DispatchProxy.
它有简单的API,但不清楚如何将现有对象包装到代理中。
例如,有这个界面:
interface IFoo
{
string Bar(int boo);
}
Run Code Online (Sandbox Code Playgroud)
和这个实现:
class FooImpl : IFoo
{
public string Bar(int boo)
{
return $"Value {boo} was passed";
}
}
Run Code Online (Sandbox Code Playgroud)
如何得到我想要的?
class Program
{
static void Main(string[] args)
{
var fooInstance = new FooImpl();
var proxy = DispatchProxy.Create<IFoo, FooProxy>();
var s = proxy.Bar(123);
Console.WriteLine(s);
}
}
class FooProxy : DispatchProxy
{
protected override object Invoke(MethodInfo targetMethod, object[] args)
{
return targetMethod.Invoke(/* I …Run Code Online (Sandbox Code Playgroud) 我想知道,如何在WiX安装项目中包含依赖于配置的项目输出?例如,让我们看看带有一个.NET应用程序和一个Wix安装项目的Visual Studio解决方案.
我在安装项目中添加了对.NET应用程序的引用,并在安装源中创建了组件:
<Component Guid="EB0CBC32-5AE5-41B3-A343-FEBE044AC30A">
<File Source="$(var.MyApp.TargetPath)" KeyPath="yes"/>
</Component>
Run Code Online (Sandbox Code Playgroud)
因此,我预计,WiX将在其发布设置msi中包含MyApp 的发行版本,并在调试msi中分别包含调试版本.否则,对项目输出的引用对我来说没有意义.
但总有调试版本.我究竟做错了什么?
UPDATE.
这是来自VS输出窗口的蜡烛命令提示符:
------ Rebuild All started:项目:MySetup,配置:发布x86 ------
C:\ Program Files\WiX Toolset v3.6\bin\candle.exe -d"DevEnvDir = C:\ Program Files\Microsoft Visual Studio 10.0\Common7\IDE \"-dSolutionDir = D:\ Projects\Research\Wix_ProjectOutput\-dSolutionExt = .sln -dSolutionFileName = Wix_ProjectOutput.sln -dSolutionName = Wix_ProjectOutput -dSolutionPath = D:\ Projects\Research\Wix_ProjectOutput\Wix_ProjectOutput.sln -dConfiguration = Release -dOutDir = ..\Release\-dPlatform = x86 -dProjectDir = D:\ Projects\Research\Wix_ProjectOutput\MySetup\-dProjectExt = .wixproj -dProjectFileName = MySetup.wixproj -dProjectName = MySetup - dProjectPath = D:\ Projects\Research\Wix_ProjectOutput\MySetup\MySetup.wixproj -dTargetDir = …
我想知道,有什么方法可以设置自定义DataGrid选择颜色,何时DataGrid或包含 的窗口DataGrid变为非活动状态?
例如,这里是DataGridand ListBox,显示相同的数据。两个控件都有一个选定的项目。最初,DataGrid具有输入焦点:

一切看起来都不错 - 中的所选项目ListBox是灰色的。然后,让我们将焦点移至ListBox:

现在的行为DataGrid不正确 - 选择颜色没有改变。
我知道SystemColors.HighlightBrushKey和SystemColors.ControlBrushKey。这个 XAML 被放置在窗口的资源中:
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="BlueViolet"/>
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="DarkGray"/>
Run Code Online (Sandbox Code Playgroud)
但看起来DataGrid忽略了第二个 - SystemColors.ControlBrushKey,我想DataGrid表现得像任何其他控件(ListBox, ComboBox, ListView)。
我可以用触发器实现类似的东西:
<Style TargetType="{x:Type DataGridCell}">
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsFocused" Value="False"/>
<Condition Property="IsSelected" Value="True"/>
</MultiTrigger.Conditions>
<Setter Property="Background" Value="DarkGray"/>
</MultiTrigger>
</Style.Triggers>
</Style>
Run Code Online (Sandbox Code Playgroud)

但是这个解决方案是不完整的。首先,它使选中但未聚焦的单元格变灰,甚至网格选择单元是FullRow。第二件事 - …
我遇到过问题,使用ScrollViewer.
这是示例视图模型:
public class A
{
public string Text { get; set; }
}
public class B
{
public int Number { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
......和DataTemplateSelector:
public class ViewModelTemplateSelector : DataTemplateSelector
{
public DataTemplate ATemplate { get; set; }
public DataTemplate BTemplate { get; set; }
public override DataTemplate SelectTemplate(object item, DependencyObject container)
{
if (item is A)
return ATemplate;
if (item is B)
return BTemplate;
return base.SelectTemplate(item, container);
}
}
Run Code Online (Sandbox Code Playgroud)
XAML:
<Grid>
<Grid.Resources>
<local:ViewModelTemplateSelector …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Razor Pages 应用程序处理插件。
解决方案由 3 个项目组成:一个 Razor Pages 应用程序和两个 Razor 类库 (RCL)。应用程序不得静态引用 RCL 项目,它们必须作为插件加载:
内页没什么特别的。功能页面只生成简单的 HTML。索引页面构建了一种菜单。
索引页模型:
public class IndexModel : PageModel
{
public IEnumerable<MenuItem> MenuItems { get; private set; }
public void OnGet()
{
MenuItems = new List<MenuItem>
{
new MenuItem { Route = "FeatureA", Title = "Feature A" },
new MenuItem { Route = "FeatureB", Title = "Feature B" }
};
}
}
Run Code Online (Sandbox Code Playgroud)
索引页面:
@page
@model IndexModel
@{
ViewData["Title"] = "Home page";
}
<div class="text-center"> …Run Code Online (Sandbox Code Playgroud) c# ×8
.net ×4
wpf ×2
.net-core ×1
asp.net-core ×1
async-await ×1
datatemplate ×1
file ×1
razor-pages ×1
realproxy ×1
scrollviewer ×1
sql-server ×1
wix ×1
wix3.6 ×1
wpfdatagrid ×1