问题列表 - 第16579页

Linq查询返回不正确的结果集

我有一个非常复杂的Linq to SQL查询,它从Microsoft SQL Server数据库返回结果集.使用类似于以下语法创建查询:

Dim db as MyDataContext = MyGetDataContextHelper()
Dim qry = From rslt in db.MyView Select ColumnList

If userParam1 IsNot Nothing Then
    qry = qry.Where(lambda for the filter)
End If

etc....

Return qry.ToList()
Run Code Online (Sandbox Code Playgroud)

查询有几个用户指定的过滤器,包括进行地理半径搜索的过滤器.

这是问题所在.我在最后的"ToList"调用中设置了一个中断.当中断命中时,我使用Linq to SQL Debug Visualizer查看生成的SQL语句.我将该复杂的SQL语句复制到SQL Server Management Studio查询窗口中,并对我的数据库执行它以获得我想要的结果集.因此生成的SQL似乎产生了所需的结果.但是,当我执行查询对象的"ToList"方法时,返回的列表具有较少的行和一些不同的行.我也尝试使用DataContext日志属性写入文件,结果相同.该查询在SQL Management Studio中生成正确的结果集,但ToList方法的结果不正确.

怎么可能?如果生成的SQL只是通过与SQL Server的连接传递,那么它不应该生成我在SQL Server Management Studio中看到的结果集吗?我假设我误解了Linq to SQL机制,即它不仅仅是SQL Server的一个直通.那是对的吗?

编辑: 根据下面的请求,这是由Linq生成的SQL的一个非常简洁的版本,为简洁起见,删除了大多数结果列.它在SQL Management Studio中生成正确的结果,但返回到我的应用程序的结果是不同的.

SELECT [t3].[Id]
FROM (
    SELECT DISTINCT [t1].[Id]
    FROM (
        SELECT [t0].[Id], [t0].[ItemDate]
        FROM [dbo].[MySearchView] AS [t0]
        ) AS [t1]
    WHERE (EXISTS( …
Run Code Online (Sandbox Code Playgroud)

.net linq sql-server linq-to-sql

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

如何在不调用hg的情况下获得当前的mercurial修订版?

在Git中,当前的修订版哈希存储在

.git/refs/heads/master
Run Code Online (Sandbox Code Playgroud)

Mercurial中有一个等价物,不需要我调用hg log -l1吗?我知道我可以在.hg/branch中获取当前分支.

这是在浏览网页时"显示"屏幕上的当前hg哈希值.

mercurial

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

具有多个XML输入文件的XSLT转换

是否可以对多个输入XML文件执行转换?

它似乎不可能使用XslCompiledTransform,但是有没有其他方法来应用XSLT?

c# xml xslt xslcompiledtransform

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

Python相当于ruby的StringScanner?

是否有一个等同于ruby的StringScanner类python类?我可以一起破解一些东西,但如果已经存在,我不想重新发明轮子.

ruby python string

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

scala中的并发map/foreach

我有一个迭代vals: Iterable[T]和一个长期运行的功能,没有任何相关的副作用:f: (T => Unit).现在这应用于vals显而易见的方式:

vals.foreach(f)
Run Code Online (Sandbox Code Playgroud)

我希望f同时完成调用(在合理的限制内).Scala基础库中某处有明显的功能吗?就像是:

Concurrent.foreach(8 /* Number of threads. */)(vals, f)
Run Code Online (Sandbox Code Playgroud)

虽然f运行时间相当长,但它足够短,我不希望为每个调用调用一个线程的开销,所以我正在寻找基于线程池的东西.

concurrency functional-programming scala

16
推荐指数
3
解决办法
9845
查看次数

Rails迁移生成器不生成列

低睡眠所以可能会遗漏一些微不足道的东西,但......

基于各种文档读数,我认为这将生成包含表和列声明的迁移...

$ script/generate migration Question ordinal_label:string question_text:string
Run Code Online (Sandbox Code Playgroud)

但是,结果是......

class Question < ActiveRecord::Migration
  def self.up
  end

  def self.down
  end
end
Run Code Online (Sandbox Code Playgroud)

为什么没有桌子或列?

ruby ruby-on-rails

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

Google地图可以根据小时分秒来绘制积分

我正在尝试绘制以小时分钟二度格式提供给我的GPS数据.GLatLng会以这种形式接受它还是我需要先转换它.很难在网上找到关于此的任何内容.如果它可以采用这种格式,我将非常感谢一个例子.

javascript gps google-maps degrees

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

CommandManager.InvalidateRequerySuggested()不够快.我能做什么?

精简版

调用CommandManager.InvalidateRequerySuggested()比我想要的更长时间才能生效(在UI控件被禁用之前1-2秒延迟).

长版

我有一个系统,我将任务提交给基于后台线程的任务处理器.此提交发生在WPF UI线程上.

当这个提交发生时,管理我的后台线程的对象做了两件事:

  1. 它引发了一个"忙"事件(仍然在UI线程上),几个视图模型响应; 当他们收到这个事件时,他们IsEnabled会给自己设置一面旗帜false.我的视图中的控件(数据绑定到此属性)会立即显示为灰色,这正是我所期望的.

  2. 它通知我的WPF ICommand对象不应该允许它们执行(同样,仍然在UI线程上).因为没有像对象那样INotifyPropertyChangedICommand东西,我被迫调用CommandManager.InvalidateRequerySuggested()强制WPF重新考虑我的所有命令对象的CanExecute状态(是的,我实际上需要这样做:否则,这些控件都不会被禁用).但是,与第1项不同,我的按钮/菜单项/等使用ICommand对象在视觉上更改为禁用状态所需的时间要长得多,而对于IsEnabled手动设置其属性的UI控件则需要更长的时间.

问题是,从用户体验的角度来看,这看起来很糟糕 ; 我的一半控件立即显示为灰色(因为它们的IsEnabled属性设置为false),然后整整1-2秒后,我的控件的另一半跟随(因为他们的CanExecute方法最终被重新评估).

所以,我的问题的第一部分:
听起来很愚蠢,有没有办法让CommandManager.InvalidateRequerySuggested()我的工作更快?我怀疑没有.

很公平,我的问题的第2部分:
我如何解决这个问题?我希望我的所有控件都可以同时禁用.它只是看起来不专业而且很尴尬.有任何想法吗?:-)

wpf icommand

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

禁用Maven SCM

我可以在Maven中禁用SCM集成选项吗?我希望它在没有SCM集成的情况下构建一个本地检出项目?

有一些设置或一些如何?

提前

maven-2 maven-scm

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

顺序Guid发生器

有没有办法获得Sql Server 2005+ Sequential Guid生成器的功能,而无需插入记录来回读往返或调用本机win dll调用?我看到有人回答使用rpcrt4.dll,但我不确定是否可以从我的托管环境中进行生产.

编辑:使用@John Boker的答案我试图把它变成GuidComb生成器的更多,而不是依赖于最后生成的Guid而不是重新开始.对于种子,而不是从我使用的Guid.Empty开始

public SequentialGuid()
{
    var tempGuid = Guid.NewGuid();
    var bytes = tempGuid.ToByteArray();
    var time = DateTime.Now;
    bytes[3] = (byte) time.Year;
    bytes[2] = (byte) time.Month;
    bytes[1] = (byte) time.Day;
    bytes[0] = (byte) time.Hour;
    bytes[5] = (byte) time.Minute;
    bytes[4] = (byte) time.Second;
    CurrentGuid = new Guid(bytes);
}
Run Code Online (Sandbox Code Playgroud)

我根据评论做了这个

// 3 - the least significant byte in Guid ByteArray 
        [for SQL Server ORDER BY clause]
// 10 - the most significant byte in Guid ByteArray …
Run Code Online (Sandbox Code Playgroud)

c# guid sequence

45
推荐指数
5
解决办法
4万
查看次数