小编Den*_*nis的帖子

在创建表后调用insert时出现"无效的列名"错误

我正在使用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)

sql-server sql-server-2012-express

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

当AggregateException.InnerExceptions.Count> 1时,有没有人遇到过这种情况?

我想知道,有什么人面临案件,当AggregateException.InnerExceptions.Count> 1?

例如,TPL包装异常,这是在任务正文中引发的AggregateException.但是,当有多个内部异常时,我从未看过情况.

如何通过TPL实现这一目标?
如何使用任何 FCL(或其他广泛使用的库)类(样本将有用)?

我知道,有可能建立这样的实例AggregateException,但问题是关于实践.我问这个问题,因为我想了解,最好的办法是什么AggregateException.

.net c# exception-handling

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

"使用HttpClient根据验证程序,远程证书无效"

无法通过证书验证解决问题.

有Web API服务器,它使用HTTPS来处理请求.服务器的证书具有以下认证路径:RCA(root) - > ICA(中间) - > Web API服务器.RCA,ICA和Web API服务器是同一Active Directory域的成员.

客户端应用程序(桌面,计算机加入同一域)用于HttpClient与服务器通信并支持两种方案:

  • 连接到企业网络;
  • 与公司网络断开连接(Internet访问).

两种方案都使用基本身份验
RCA和ICA证书分别放在"受信任的根证书颁发机构"和"中间证书颁发机构"中,用于本地计算机帐户.RCA证书是自签名的.

现在,当客户端连接到公司网络时,证书验证按预期工作,用户可以与Web API"对话".

当客户端断开连接(只有Internet连接可用)时,证书验证失败AuthenticationException("远程证书根据验证过程无效").

我不想完全关闭证书验证,但只需要告诉验证系统,这个特定证书是有效的.此外,客户端应用程序使用SignalR,它默认使用它自己的传输.因此,不是选项.

为什么将RCA ICA证书放到"Trusted ..."和"Intermediate ..."文件夹中没有帮助?

有没有解决方法?

c# ssl-certificate dotnet-httpclient

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

是否有像DbSet <T> .RemoveWhere(Predicate <T>)的东西

可能重复:
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)

但这是不太可能的,因为会有额外的工作.我错过了什么吗?

.net c# entity-framework ef-code-first entity-framework-4.3

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

哪里有FIle.ReadAll***Async/WriteAll***Async/AppendAll***异步方法?

在类中有一堆相当方便的方法File,比如ReadAll***/ WriteAll***/ AppendAll***.

当我需要他们的异步对应物时,我遇到了很多情况,但它们根本不存在.

为什么?有任何陷阱吗?
我知道,这些方法可以轻松实现,但有没有理由不在开箱即用的框架中实现它们?

.net c# file task-parallel-library async-await

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

如何将现有对象实例包装到 DispatchProxy 中?

我正在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)

.net c# realproxy .net-core

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

如何在WiX 3.6中包含依赖于配置的项目输出

我想知道,如何在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 = …

wix visual-studio-2010 wix3.6

6
推荐指数
2
解决办法
6168
查看次数

如何设置自定义 DataGrid 非活动选择颜色?

我想知道,有什么方法可以设置自定义DataGrid选择颜色,何时DataGrid或包含 的窗口DataGrid变为非活动状态?

例如,这里是DataGridand ListBox,显示相同的数据。两个控件都有一个选定的项目。最初,DataGrid具有输入焦点:

在此处输入图片说明

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

在此处输入图片说明

现在的行为DataGrid不正确 - 选择颜色没有改变。
我知道SystemColors.HighlightBrushKeySystemColors.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。第二件事 - …

c# wpf wpfdatagrid

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

ScrollViewer忽略ContentTemplateSelector

我遇到过问题,使用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)

c# wpf datatemplate scrollviewer

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

如何从 Razor Pages 应用程序中的插件动态加载页面?

我正在尝试使用 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# asp.net-core razor-pages

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