小编Blu*_*eft的帖子

使用LINQ to Entities选择最新记录

我有一个简单的Linq to Enities表来查询并使用Date字段获取最新的记录

所以我尝试了这段代码:

IQueryable<Alert> alerts = GetAlerts();
IQueryable<Alert> latestAlerts =
    from a in alerts
    group a by a.UpdateDateTime into g
    select g.OrderBy(a => a.Identifier).First();
Run Code Online (Sandbox Code Playgroud)

错误:NotSupportedException:不支持方法"GroupBy".

有没有其他方法可以做到这一点?非常感谢!

c# linq linq-to-entities

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

离开屏幕保护程序或锁定计算机后程序挂起

我们的程序工作正常,直到有人锁定计算机或屏幕保护程序弹出(但不是ctrl + alt + delete).一旦计算机解锁/屏幕保护程序关闭,应用程序将停止绘制除标题栏以外的所有内容,并停止响应输入 - 它显示一个无法移动或关闭的大部分白色窗口.

应用程序冻结的示例

(应用程序冻结示例 - 山脉来自我的桌面背景)

如果我们让它静置大约5到10分钟,它会恢复生命,并且不会再次挂起(即使在锁定计算机/屏幕保护程序弹出窗口之后),直到应用程序重新启动.

调试很困难,因为只有在手动打开.exe时才从Visual Studio启动程序时才会发生这种情况.

它只在显示启动画面时发生 - 如果我删除代码以显示启动画面,它就会停止发生.但是,我们需要启动画面.

我已尝试过本页的所有建议 ; 唯一没有发生的是使用Microsoft.VisualBasic.WindowsFormsApplicationBase,但这会导致各种其他问题.

互联网上有关这方面的信息似乎很少 - 以前有没有人遇到过类似的问题?


这是相关代码:

//Multiple programs use this login form, all have the same issue
public partial class LoginForm<TMainForm>
    where TMainForm : Form, new()
{
    private readonly Action _showLoadingForm;

    public LoginForm(Action showLoadingForm)
    {
        ...
        _showLoadingForm = showLoadingForm;
    }

    private void btnLogin_Click(object sender, EventArgs e)
    {
        ...
        this.Hide();
        ShowLoadingForm(); //Problem goes away …
Run Code Online (Sandbox Code Playgroud)

c# vb.net multithreading hang winforms

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

有没有办法在A*中保持方向优先级?(即生成与广度优先相同的路径)

我有一个应用程序将受益于使用A*; 但是,由于遗留原因,我需要它继续生成与之前有多个最佳路径可供选择的路径完全相同的路径.

例如,考虑这个迷宫

...X
FX.S
....

S = start
F = finish
X = wall
. = empty space

方向优先级Up; 对; 下; 离开了.使用广度优先,我们将找到路径DLLLU; 然而,使用A*我们立即离开,最终找到路径LULLD.

我一直试着确保在打破领带时始终朝着正确的方向扩展; PreviousNode从更重要的方向移动时覆盖指针,但在该示例中都不起作用.有没有办法做到这一点?

algorithm graph a-star path-finding

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

给定数组N的三个数的最大乘积

我需要编写一个程序来查找给定大小为N的数组的三个数的Max乘积.对此有什么有效的算法吗?我只需要知道算法步骤.不是我认为适用于所有测试用例的算法.谢谢!FYI数组可能包含+ ve,-ve或零元素)

arrays math

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

为什么LINQ-to-Entites会识别我的自定义方法?

这有效:

Entities.WorkOrderSet.Where(MyCustomMethod);
Run Code Online (Sandbox Code Playgroud)

这不是:

Entities.WorkOrderSet.Where(o => MyCustomMethod(o));
Run Code Online (Sandbox Code Playgroud)

([编辑]即使没有new,它也不起作用)

我理解为什么第二个不起作用 - 但为什么世界上第一个工作!? 我不应该在运行时获得"LINQ-to-Entities无法识别方法...",就像第二个一样?

作为参考,这是MyCustomMethod

public bool MyCustomMethod(WorkOrder workOrder)
{
    return !workOrder.WorkOrderNum.StartsWith("A", StringComparison.CurrentCultureIgnoreCase);
}
Run Code Online (Sandbox Code Playgroud)

使用EF1,而不是EF4

c# linq-to-entities entity-framework

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

格式化是指定的,但参数不是IFormattable

string listOfItemPrices = items.ToSemiColonList(item => string.Format("{0:C}", item.Price.ToString()));
Run Code Online (Sandbox Code Playgroud)

我只想把这里的价格格式化为2位小数.好的,所以string.Format没有实现IFormattable?好吧不知道如何解决这个问题,以便我可以在这里格式化小数(价格).

c#

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

可以在拖放时使用鼠标滚轮吗?

在WinForms中,在调用a DoDragDrop开始拖动项目之后,控件不再使用鼠标滚轮滚动,并且MouseWheel不再调用控件的事件,直到用户放弃他拖动的任何内容.

拖动时有没有办法让鼠标滚轮工作?

c# scroll mousewheel winforms

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

实体框架 - 联盟导致"无法创建类型的常量值..."

要选择所有Scheduling活动的,我有以下代码:

var allSchedulesOnALine = CurrentUser.Lines.SelectMany(o => o.Scheduling).Where(o => o.Active);
var allSchedulesUnscheduled = Entities.SchedulingSet
    .Where(o => o.Line == null && o.Site.Id == CurrentUser.Site.Id &&
           o.Factory == CurrentUser.Factory && o.Active);

IEnumerable<Scheduling> allSchedules = allSchedulesUnscheduled.Union(allSchedulesOnALine);
foreach(Scheduling schedule in allSchedules.OrderBy(o => o.Ordering))
{
    //Do Stuff
}
Run Code Online (Sandbox Code Playgroud)

(Factoryint)

当我运行此代码时,我得到了这个神秘的错误foreach:

无法创建类型为'System.Collections.Generic.IEnumerable`1'的常量值.在此上下文中仅支持原始类型(例如Int32,String和Guid').

奇怪的是,我可以枚举都allSchedulesOnALineallSchedulesUnscheduled独立.更奇怪的是,如果我重新订购联盟:

IEnumerable<Scheduling> allSchedules = allSchedulesOnALine.Union(allSchedulesUnscheduled);
Run Code Online (Sandbox Code Playgroud)

它工作正常!

有谁知道为什么会这样?我错过了一些关键的东西,还是这个错误?

我应该提到我正在使用Entity Framework 3.5.EF4目前不是我们的选择 - 它超出了我的控制范围:\

linq-to-entities entity-framework

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

从列表中查找具有最小XOR值的对

我正在研究一个问题,在这个问题中,我希望得到数组中所有整数对的xor,然后找到从xor'ing产生的K个最小整数.阵列的大小可以是N = 100000,因此K可以非常大但限制为250000.

例如,如果N = 5且K = 4,

我们的阵列是 {1 3 2 4 2}

xoring(1和3,1-2,1-4,1-2,3-2,3-4,3-2等)产生的数字

3 3 2 5 0 1 6 1 6 7
Run Code Online (Sandbox Code Playgroud)

由于K = 4,我们必须打印4个最小的整数.所以答案是0 1 1 2.

由于时间限制是2秒并且非常紧张,因此使用挖掘所有数字的强力方法会超时.我的做法是错的,所以我需要帮助.也许我们可以利用K = 250000的限制,并想知道是否有可能得到K个最小的数字而不用xoring所有的整数.

algorithm data-structures

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

docker/docker-compose 中的“down”和“rm”有什么区别?

docker-compose downdocker-compose rm和的文档docker rm读起来非常相似。有什么不同?您什么时候会使用其中一种而不是其他?

docker docker-compose

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