小编Hei*_*ich的帖子

Sql条件不空约束


我很想知道是否有可能在sql中创建一个条件非空约束?换句话说,可以创建一个约束,使得列B可以为空,因为列A包含让我们说"新",但如果列A的内容更改为其他内容,则不再允许列B为空?
为了扩展,只要列A表示"新",就可以使列B必须为空或为空?
谢谢大家:D

sql constraints notnull

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

通过Cmd启动Windows应用程序与控制台应用程序

当从Cmd运行应用程序时直接调用exe,我对Console vs Windows Application有好奇心的问题.
如果应用程序编译为控制台应用程序(将其称为我的ConApp),则在通过cmd运行应用程序时,提示会等待应用程序完成运行,然后再继续.但是,如果应用程序已编译为Windows应用程序(将其称为我的WinApp),则通过cmd启动应用程序,提示将触发并忘记WinApp,可以理解这是预期的行为.
要让WinApp停止发送和忘记cmd,必须使用类似"start\wait WinApp.exe"的内容在cmd中启动应用程序,这将导致Cmd提示等待WinApp停止运行持续.
我的问题是控制台应用程序如何通知Cmd,或者Cmd如何知道它需要保持打开状态,而不是忘掉ConApp?是否有可能在我的WinApp中调用相同类型的行为,以便我不必调用"start\wait"?

注意:
我已经使用过AllocConsole和AttachConsole,但是当我在WinApp中使用AttachConsole(-1)时,Cmd仍然会忘记WinApp,WinApp似乎只是打开一个新的控制台窗口.

c# cmd console-application windows-applications

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

pack:// application:,,,/ResourceFile.xaml永不工作

我从来没有能够使这种格式的引用资源字典工作.我错过了什么

场景:

在其中创建和组装一些用户控件.
在root上有文件{root}
/Themes/ColorThemes.xaml.ColorThemes.xaml文件的构建操作设置为Resource.
然后在xaml文件中进一步向下说出{root} /Controls/ButtonStyles/Themes/ButtonThemes.xaml(注意路径只是一个例子)在这个文件中我有以下代码:

<ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="pack://application:,,,/Themes/ColorThemes.xaml"/>
</ResourceDictionary.MergedDictionaries>
Run Code Online (Sandbox Code Playgroud)

至于文档声明这应该工作(据我所知),虽然我在设计师看起来很好(所有颜色加载等)然而当我然后去编译我的应用程序并运行它我得到这个错误{"无法找到资源'themes/colorthemes.xaml'."}这很奇怪,因为它似乎在构建器中使用得很好.所以我很安静,因为它似乎与文档不一致.
所以如果有人能向我解释我错过了什么:)

注意:如果我将以前的代码更改为

<ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="../../../Themes/ColorThemes.xaml"/>
</ResourceDictionary.MergedDictionaries>
Run Code Online (Sandbox Code Playgroud)

它工作正常,但对于cleanese pack://应用程序:.

.net wpf resourcedictionary

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

WCF多个端点和服务

我只是想尝试使用WCF,如果有人能告诉我我是否对端点有正确的想法,我就会徘徊.

我一直在处理msdn上的视频,现在我正在徘徊配置WCF服务的方式.场景是如果我有多个IServices,例如我有一个IThis和IThat,并且客户端需要访问权限(注意:他们将使用net.tcp),

  • 它处理数据库查询,

  • IThat处理独立于数据库的计算,

我假设我必须为IThis和IThat定义单独的端点,这些端点在客户端中单独引用.或者我是否会创建一个在客户端中引用并包含两者功能的整体IThisAndThat服务?

或者是使用多个IServices开发和处理WCF服务的其他方法?虽然我问你能为tcp定义基地址还是只定义http?

〜谢谢大家,任何帮助或指针都会很棒.

wcf wcf-endpoint

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

Response.WriteAsync和返回字符串之间的区别是什么

嗨,如果有人能向我解释这两种从控制器返回数据的方法之间的区别,我就会徘徊.使用方法优于另一方是否有优势或理由?

我猜测返回的功能只是Response.WriteAsync进一步调用,但我不确定.

使用邮递员这两种方法都返回完全相同的响应,所以我只是对这两个选项感到好奇,是否有理由使用其中一个或仅仅是个人偏好.

在Response.WriteAsync之间:

[HttpGet("Fetch_WriteAsync")]
public async Task Fetch_AsyncWrite()
{
    HttpContext.Response.ContentType = "application/json";
    await HttpContext.Response.WriteAsync(JsonConvert.SerializeObject(new { data = "my_fetched_data" }));
}
Run Code Online (Sandbox Code Playgroud)

然后回来:

[HttpGet("Fetch_Return")]
public async Task<string> Fetch_Return()
{
    HttpContext.Response.ContentType = "application/json";
    return await Task.Factory.StartNew(()=>JsonConvert.SerializeObject(new { data = "my_fetched_data" }));
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core

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

SQL Server:奇怪的无效对象名称

我正在尝试创建一个存储过程,但收到此错误:

消息 208,级别 16,状态 6,过程 SP_MergeStaggedPoliticalPartyAgents,第 1 行 [批处理开始第 0 行]
对象名称“SP_MergeStaggedPoliticalPartyAgents”无效。

SQL如下,减去内容

CREATE OR ALTER PROCEDURE SP_MergeStagedPoliticalPartyAgents
AS
BEGIN
    -- Content removed for brevity
END
Run Code Online (Sandbox Code Playgroud)

如果我无论如何改变名称,即添加额外的 s,或删除末尾的 s。它工作 100% 正常,所以我的问题是我使用的这个特定名称是什么导致它失败?

SQL Server 是否有该名称违反的名称验证正则表达式?这是一个保留名称吗?

IMO 更奇怪的补充:为了测试我是否去:

CREATE PROCEDURE SP_MergeStagedPoliticalPartyAgents
AS
BEGIN
    -- Content removed for brevity
END
Run Code Online (Sandbox Code Playgroud)

它运行良好并在此基础上创建存储过程,从那时起该CREATE OR ALTER PROCEDURE SP_MergeStagedPoliticalPartyAgents语句就可以正常工作。

似乎不存在具有此名称的存储过程,它将失败,但如果第一次初始化它,则会CREATE OR ALTER PROCEDURE SP_MergeStagedPoliticalPartyAgents传递。CREATE SP_MergeStagedPoliticalPartyAgents

笔记:

  • 我已经以相同的方式创建了其他存储过程,这些存储过程都很好
  • 这不是权限问题,因为我可以很好地创建存储过程。
  • 通过 VS 运行脚本会导致相同的问题,因此它与 SMSS 无关
  • 这也不是内容。如果我用基本内容替换内容,select * from table问题仍然存在。

sql sql-server-2019

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

C#等待和处理任务


我一直在看这篇关于在C#中使用任务的文章,如果有人可以为我清理一些东西,我就会徘徊?
不调用等待任务会失败创建任务的目的,因为它不会冻结主线程,因为现在主线程必须等待任务完成.
我假设不会立即调用等待,所以现在你什么时候打电话或者你怎么知道什么时候处理这​​个任务.假设我们有一个这样的简单案例:

    void MyFunction()
    {
        Task t = Task.Factory.StartNew(() => { System.Threading.Thread.Sleep(5000); });
    }
Run Code Online (Sandbox Code Playgroud)

如果你直接调用t.Wait(),主线程仍然会等待5秒才能做其他任何事情,从用户的角度来看,这有点失败,他们将无法做任何事情,持续5秒.你怎么知道5秒后任务完成了?你可以处理t?处理这个问题的正确方法是什么?
对不起,如果问题真的很天真:(谢谢大家:D

c# task

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

在Windows启动时运行程序

如果有人能向我解释如何让我的程序在启动时运行,我就会徘徊?我的程序是一个C#WCF,它有一个小的WPF UI,必须在服务器上运行,我需要确保程序将在服务器重新启动时或其他任何原因启动.

我看了一下,似乎我必须使用注册表项,但我不熟悉如何使用注册表项,有人可以向我解释如何使用它.我正在使用VS2010创建一个安装程序,我想在安装时设置注册表项:)

PS我不希望应用程序成为Windows服务,我不能只将它放在用户的启动文件夹中(如果服务器重新启动并且没有人登录会导致什么?)

c# wcf startup registrykey

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

如果在子级上验证失败,则不会在父级上调用IValidatableObject.Validate

我找不到任何关于此的细节,但我遇到的问题是,如果Validate调用在任何子属性上失败,则不会调用父对象的Validate函数.简单场景如下:

public class Child : IValidateObject 
{
    public IEnumerable<ValidationResult> Validate(ValidationContext  validationContext)
    { ... } 
}

public class Parent : IValidatableObject
{ 
    public Child Child { get; set;}
    public IEnumerable<ValidationResult> Validate(ValidationContext  validationContext)
    { ... } 
}
Run Code Online (Sandbox Code Playgroud)

如果子级中的验证失败,则父级的Validate函数不会被调用,因此您最终必须首先解决所有子问题然后提交,然后才会看到父级的所有验证失败.

如果有人可以帮助我理解为什么会这样,或者指出一些有关这方面的文件会很棒.

c# asp.net-core-mvc asp.net-core

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

从同步函数返回 Task 与 void


我只是对从同步函数返回“Task”与“void”的场景感到好奇。假设我有一个函数,如下所示,它可以返回任务或空值。我只是好奇返回“Task”而不仅仅是“void”是否有任何好处?

public void SynchronousFunction(/* some input */) { /* some synchronous operation */}

// VS 

public Task SynchronousFunction(/* some input */)
{
    /* some synchronous operation */
    return Task.CompletedTask
}

// VS Variation of Task return function

public Task SynchronousFunction(/* some input */)
{      
   return Task.Run(() => /* some synchronous operation */
}
Run Code Online (Sandbox Code Playgroud)

我的观点有两点。首先,感觉返回任务需要一些不必要的装箱和拆箱,其次,如果在某些同步代码中调用该函数,则不需要使用 .Wait() 或类似的东西来调用。

c# task-parallel-library

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