小编bru*_*iow的帖子

SQL Server:从父表中选择,其中任何子表中都不存在id

我需要从customer表中选择所有行,它们在调用表中没有行,并且在调用存档表中没有行.看起来很简单,但我已经把自己包裹起来试图让查询运行.

所以表的结构如下:customer是父,调用和调用存档都链接到customer_id.

请有人帮帮我吧!

CREATE TABLE [dbo].[customer]
(
    [customer_Id] [varchar](50) NOT NULL
    CONSTRAINT [PK_customer] 
        PRIMARY KEY CLUSTERED ([customer_Id] ASC)
)

CREATE TABLE [dbo].[call]
(
    [call_Id] [int] NOT NULL,
    [customer_Id] [int] NULL,
    [call_description] [varchar](50) NULL,

    CONSTRAINT [PK_call] 
        PRIMARY KEY CLUSTERED ([call_Id] ASC)
) 

ALTER TABLE [dbo].[call] WITH CHECK 
    ADD CONSTRAINT [FK_call_customer] 
        FOREIGN KEY([customerKey]) REFERENCES [dbo].[customer] ([customerkey])
GO

CREATE TABLE [dbo].[callArchive]
(
    [call_Id] [int] NOT NULL,
    [customer_Id] [int] NULL,
    [call_description] [varchar](50) NULL,

    CONSTRAINT [PK_call] 
        PRIMARY KEY CLUSTERED ([call_Id] ASC) …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server join

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

使用 WinForms 和 Framework 4.8 MVC 的 Signalr

我正在尝试使用信号器作为通知者创建一个作业通知流程。我的情况是,我有一个 winforms 项目,它将控制流程的各个阶段。MVC 项目中流程影响的系统。

目前我有这些项目: 流程(Winforms)系统(框架4.8 MVC)服务(框架4.8)SignalRSelfHost(控制台)

服务层由流程和系统项目引用,并包含流程每个步骤的逻辑。当一个阶段开始或结束时,它需要调用连接的客户端并让他们知道。

我最初在系统项目中创建了信号器内容,并且能够从页面上的按钮调用服务方法,并按预期传递开始/结束消息。然后我创建了 winforms 应用程序并调用了相同的服务方法。当我这样做时,没有消息发送到网络客户端。

值得一提的是,winforms 项目对 signalr 一无所知,它被留给服务使用以下方式与 signalr 进行协商:

            var context = GlobalHost.ConnectionManager.GetHubContext<ProcessHub>();
            context.Clients.All.StageStarted(stage.started);
Run Code Online (Sandbox Code Playgroud)

然后我突然意识到,即使进入该服务的两条路由运行相同的代码,但它们创建的集线器可能是独立的,永远不会作为一个整体进行通信。

所以我想也许我需要一个与系统和进程端分开的通用信号服务器,两者都可以使用。我创建了一个注释控制台应用程序,它将充当自主机,然后运行为:

http://localhost:8080
Run Code Online (Sandbox Code Playgroud)

然后我可以重新指向我的脚本标签以查找该 URL,而不是 Web 端的 ../signalr。

我现在的问题是如何让 WinForms 和 Web 应用程序将正确的上下文注入到服务中?

我尝试为我的服务创建一个构造函数,如下所示:

    private IHubContext<ProcessHub> Clients {get;set;}

    public ProcessService(IHubContext<ProcessHub> clients)
    {
        Clients = clients;
    }
Run Code Online (Sandbox Code Playgroud)

但我没有使用 core,所以我无法弄清楚如何从我的控制器创建该服务的实例(我通常会在 .net core 中使用 DI 并注册我的服务)我尝试了这个,但它显然是错误的......

    public ProcessController(IHubContext<ProcessHub> clients)
    {
        _processService = new ProcessService(clients);
    }
Run Code Online (Sandbox Code Playgroud)

这告诉我控制器需要一个无参数构造函数。如果我创建其中之一,我想我将无法按预期使用该服务。我没有尝试将 win 表单连接到该服务,因为我认为我会遇到类似的问题。

任何人都可以帮助我a)我是不是完全找错了树...b)我如何创建我的服务实例并让它了解我的中心上下文。

非常感谢!

.net asp.net-mvc winforms signalr

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

标签 统计

.net ×1

asp.net-mvc ×1

join ×1

signalr ×1

sql ×1

sql-server ×1

t-sql ×1

winforms ×1