小编Has*_*zar的帖子

将LEFT OUTER JOIN转换为Entity Framework

这是我想要转换为EF4.3的SQL查询

        command = database.GetSqlStringCommand(@"
                                select 
                                    H.AUTHENTICATION_ID, 
                                    USERNAME, 
                                    PERMISSIONS,
                                    ORGANIZATION_IDENTIFIER, 
                                    O.ORGANIZATION_ID 
                                from 
                                    AUTHENTICATION H 
                                        left join [AUTHORIZATION] T on H.AUTHENTICATION_ID=T.AUTHENTICATION_ID 
                                        join ORGANIZATION O on O.ORGANIZATION_ID = T.ORGANIZATION_ID
                                order by H.AUTHENTICATION_ID");
Run Code Online (Sandbox Code Playgroud)

这是我能想到的最好的LINQ:

        var query = from h in context.Authentications
            join t in context.Authorizations on h.AuthenticationId equals t.Authentications.AuthenticationId 
            join o in context.Organizations on t.Organizations.OrganizationId equals o.OrganizationId
            orderby
            h.AuthenticationId
            select new
            { AUTHENTICATION_ID = (Int16?)h.AuthenticationId,
                h.Username,
                t.Permissions,
                o.OrganizationIdentifier,
                OrganizationID = (Int16?)o.OrganizationId
            };
Run Code Online (Sandbox Code Playgroud)

我知道我需要将我的第一个连接(在授权和身份验证之间)合并到,让我们说x并应用DefaultIfEmpty但是无法弄清楚语法.

编辑:图片澄清: 数据模型

任何帮助将受到高度赞赏.问候.

c#-4.0 entity-framework-4.3

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

包管理器控制台中的 Scaffold-DbContext 给出了 System.NullReferenceException

我最近才开始面对这个问题。我正在使用最新的 Visual Studio 2022 预览版。我对数据库进行了一些简单的更改,并使用 dbForge Studio 2022 for SQL Server 中的验证工具来验证所有对象。数据库有效。

当我尝试更新上下文时,我得到以下输出。

Build started...
Build succeeded.
System.NullReferenceException: Object reference not set to an instance of an object.
   at Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpDbContextGenerator.TransformText()
   at Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpModelGenerator.ProcessTemplate(ITextTransformation transformation)
   at Microsoft.EntityFrameworkCore.Scaffolding.Internal.CSharpModelGenerator.GenerateModel(IModel model, ModelCodeGenerationOptions options)
   at Microsoft.EntityFrameworkCore.Scaffolding.Internal.ReverseEngineerScaffolder.ScaffoldModel(String connectionString, DatabaseModelFactoryOptions databaseOptions, ModelReverseEngineerOptions modelOptions, ModelCodeGenerationOptions codeOptions)
   at Microsoft.EntityFrameworkCore.Design.Internal.DatabaseOperations.ScaffoldContext(String provider, String connectionString, String outputDir, String outputContextDir, String dbContextClassName, IEnumerable`1 schemas, IEnumerable`1 tables, String modelNamespace, String contextNamespace, Boolean useDataAnnotations, Boolean overwriteFiles, Boolean useDatabaseNames, Boolean suppressOnConfiguring, Boolean noPluralize)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.ScaffoldContextImpl(String provider, String …
Run Code Online (Sandbox Code Playgroud)

visual-studio-2022 .net-7.0

13
推荐指数
2
解决办法
5602
查看次数

无法在WP7应用程序中使用System.Threading.Tasks

我最近完成了一个在线存储网站库,允许我在文件存储网站和Windows窗体桌面客户端+ Outlook插件之间调用PHP公开的REST.

现在,这是一个问题,其中包含库中最基本操作的代码示例:优雅地杀死TPL任务.我将它链接起来仅供参考.我的下一个目标是Windows Phone 7客户端.

我知道我根本不能使用相同的库,因为我需要一个不同类型的WP7应用程序类库.所以我前进并创建了一个WP7版本的库,希望大部分内容都能正常工作.当我意识到我无法访问最关键的类时,我立即遇到了障碍:TPL任务.

我在这里错过了什么吗?有什么建议?谢谢.

task-parallel-library c#-4.0 windows-phone-7.1

10
推荐指数
2
解决办法
3807
查看次数

自动填写或自动化 Google 表单

随着最近预算学校匆忙实施的在家学习动态,我现在面临着一个无意识的机器人般的任务,每天为每个孩子多次填写我的孩子的出勤率。学校分享了这个表格:

在此处输入图片说明 在此处输入图片说明

作为一名开发人员,我想要创建一个用户界面,并让我的孩子在老师要求使用 Zoom 时自己提交这个表单的出勤率。有可能吗?我是 .Net 开发人员,还没有为 Office 365 Online 开发任何东西,也不知道从哪里开始寻找 Google。

google-forms

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

如何在.Net Core 3 Worker服务中设置应用程序设置

我一直在查看有关阅读.Net Core 3中的appsettings.json 的许多教程和SO问题(例如App Settings .Net Core),在处理Worker服务时,我找不到任何方法指南。没有启动方法。相反,我有一个带有main方法的Program.cs:

public class Program
{
    public static void Main(string[] args)
    {
        CreateHostBuilder(args).Build().Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureServices((hostContext, services) =>
            {
                services.AddHostedService<Worker>();
            });
}
Run Code Online (Sandbox Code Playgroud)

如何从.Net Core 3的Worker服务项目中的appsettings.json文件读取?

我添加了对使用.Net v4.8和另一个项目创建的自定义WCF客户端的引用,该项目仅在整个解决方案之间共享所有Busines域对象。我的解决方案主要是.Net v4.8,我想使用Worker Service。客户端项目通过代码在内部创建WCF客户端,因此所有绑定和端点都是可配置的。如果这是一个.Net v4.8项目,则将以下内容添加到app.config中:

<appSettings>
    ...
    <add key="AminServiceUri" value="http://localhost:45108/ServiceHost/v1/AminService.svc" />
    <add key="BillServiceUri" value="http://localhost:45108/ServiceHost/v1/BillService.svc" />
    <add key="CustomerServiceUri" value="http://localhost:45108/ServiceHost/v1/CustomerService.svc" />
    <add key="EpayServiceUri" value="http://localhost:45108/ServiceHost/v1/EpayService.svc" />
    <add key="FinanceServiceUri" value="http://localhost:45108/ServiceHost/v1/FinanceService.svc" />
    <add key="GrpServiceUri" value="http://localhost:45108/ServiceHost/v1/GrpService.svc" />
    <add key="MetaServiceUri" value="http://localhost:45108/ServiceHost/v1/MetaService.svc" />
    <add key="ReportServiceUri" value="http://localhost:45108/ServiceHost/v1/ReportService.svc" />
    <add key="ServiceInfoServiceUri" value="http://localhost:45108/ServiceHost/v1/ServiceInfoService.svc" …
Run Code Online (Sandbox Code Playgroud)

c# .net-core-3.0

7
推荐指数
2
解决办法
987
查看次数

Elsa 企业工作流程

我即将在我的公司开始一个新项目。我在一家高度受标准和最佳实践监管的企业中工作。我们已经部署了 Kofax TotalAgility。我正在尝试使用 Elsa 作为基于 .Net 4.6 的 Kofax 的轻量级替代品。我在 Blazor 服务器端和 .Net 5 上。

所以艾尔莎有上诉。其次,Elsa 严重缺乏帮助。通用或业余开发人员不会使用基于工作流的业务层。工作流在企业环境中更为常见。我们为具有 AlwaysOn SQL Server 的应用程序提供负载平衡部署模型。如果我将 Elsa 嵌入到一个应用程序中,将它的表作为应用程序数据库的一部分,我需要将它部署到指向同一个数据库的两个节点。当涉及到获取保存在数据库中的活动并执行操作时,这会产生竞争条件。这就是 Kofax 被专门部署为单个节点的原因。这意味着我需要为我的所有应用程序部署基于 Elsa 的通用解决方案。我根本没有这样做的样本或指南。

有人能帮我理解这个场景吗:一个 Elsa 部署并运行在服务器上,IIS 公开了它的 API 接口(如果它已经部署了嵌入到 .Net 5 Web API 中)。然后,一个单独的应用程序将利用这个 Elsa 实例。

我在这里的理解可能有误。请帮忙。

elsa-workflows

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

无法将 lambda 表达式转换为预期委托类型,因为块中的某些返回类型不能隐式转换为委托 ret 类型

我的 Blazor 服务器端页面上有以下代码:

protected override async Task OnInitializedAsync()
{
    try
    {
        _model = await BudgetReleaseRequestProviderService.GetMeetingById(MeetingId);           

        var meetingRequestsIds = await BudgetReleaseRequestProviderService.GetMeetingDetailsForMeeting(_model.Id);
        var selectedRequestIds = meetingRequestsIds.Select(s => s.RequestId).ToArray();

        var meetingRequests = (await BudgetReleaseRequestProviderService.GetAllRequests())
            .Where(w => selectedRequestIds.Contains(w.Id)).ToList();

        _requestsData = new List<MeetingRequestActionViewModel>(meetingRequests.Cast<MeetingRequestActionViewModel>());
    }
    catch (Exception e)
    {
        LoadingStatus = $"Error while loading meeting #{MeetingId}. Error: {e.Message}";
        Console.WriteLine(e);
    }
}
Run Code Online (Sandbox Code Playgroud)

没有错误,但是当我构建时,我收到以下错误:

错误:

  • CS1662 无法将 lambda 表达式转换为预期委托类型,因为块中的某些返回类型不能隐式转换为委托返回类型
  • CS0131 赋值的左侧必须是变量、属性或索引器

这些错误位于.g.cs页面的文件中。我无法理解该文件。我的 Linq 中有一个 Contains 调用,这是我最接近的故障排除方法。

课程:

public class MeetingRequestActionViewModel: BudgetReleaseRequestViewModel
    {}

public partial class BudgetReleaseRequestViewModel …
Run Code Online (Sandbox Code Playgroud)

blazor-server-side .net-5

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

在另一个BackgroundWorker中运行BackgroundWorker

我正在尝试一个项目中的数据库密集型任务.这是一个演练:

我们需要搜索我们的工作人员数据库,我们称之为Locums,并为特定工作找到一个.当我们决定处理x个作业时,此过程开始.因此,只需单击一个按钮,我们就可以使用该ProcessJobBatch()方法进行处理.但是,此方法仅针对非常有限数量的Locums进行处理.因此,填充调度程序控件需要不到10秒.现在,一旦提供了有限数量的Locums,我们就需要运行后台任务来检查Locums的其余部分.大约有1250个!

因此,一旦ProcessJobBatch()完成,一BackgroundWorker,BackgroundWorkerMoreLocums,熄灭.现在,这个工作人员基本上做了一个简单的循环:对于每个工作,请通过整个1250名员工.这需要太长时间.我需要使用替代策略来计划这个,我不能使用ATM或者我需要为内部for-each循环显示辅助进度条.

更多说明:我们每天多次导入一批作业(10到70).导入批处理后,应用程序会指示登录用户"首选"查找新创建的作业.用户已经有他最喜欢的位置列表(1到20).他希望首先在他最喜欢的工作中分配工作.这是通过完成的ProcessJobBatch().但是,有两种情况会阻止那里的流量:

  • 如果某些工作没有落到任何最喜欢的地方怎么办?
  • 如果整个数据库中都有一个能够完成几乎所有工作但是因为他不喜欢的工作室怎么办?

因此,我最终得到了一个与每个Locum匹配作业的场景.

问题: 第二个BackgroundWorker可以在BackgroundWorker的DoWork中运行吗?我第二次扫描错了吗?

环境: Windows 7 Pro 64位,Visual Studio 2010,C#,.NET 4.0和Windows窗体

    private void ButtonPreferenceFind_Click(object sender, EventArgs e) {
        if (LookUpBatches.EditValue != null) {
            JobBatch JobBatchSelected = DbContext.JobBatches.FirstOrDefault(job_batch=> job_batch.OID == LookUpBatches.EditValue.ToString());

            if (JobBatchSelected != null && JobBatchSelected.Jobs.Count(condition => condition.JobStatusID == 1) > 0) {
                if (XtraMessageBox.Show(String.Format("Are you sure to process {0} job(s)?", JobBatchSelected.Jobs.Count(condition => condition.JobStatusID == 1)), Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) {
                    ProcessJobBatch(JobBatchSelected); …
Run Code Online (Sandbox Code Playgroud)

.net c# linq backgroundworker

5
推荐指数
2
解决办法
6592
查看次数

子窗体大小设置为 MDI 窗体的 MDI 容器的大小

我想知道如何让子窗体加载其大小覆盖整个 MDI 父级的 MDI 容器空间(深灰色的东西)?将子窗体的 WindowState 设置为最大化不是一个选项,因为它也会最大化任何其他窗体。建议?

c# forms mdi

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

我可以从 VS 数据库项目的部署后脚本中调用不同的 SQL 脚本吗

我对基线数据库的多个表进行了大量插入操作。我试图在多个 SQL 脚本中为单个表和从属表组织此任务。我需要从主要的部署后 SQL 脚本中按顺序调用脚本。

有任何想法吗?

database deployment database-project visual-studio-2010

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