小编Bra*_*son的帖子

LINQ to SQL EntitySet中的漏洞抽象

我遇到了一些dbml生成的类,这些类无法解析为高效的SQL.想象一下,我有一个Accounts表和一个Transactions表,其中每个事务都与一个特定的帐户相关联.我将所有这些加载到dbml中,并弹出一个Account类和一个Transaction类.Account类具有对一组事务的EntitySet引用,这些事务表示该帐户上的所有事务.很公平.

现在假设我只想要当前会计期间的交易.所以我添加一个这样的方法:

public IEnumerable<Transaction> CurrentTransactions
{
    get
    {
        DateTime dtStart = CurrentPeriod;
        DateTime dtEnd = NextPeriod;
        return
            from t in Transactions
            orderby t.date
            where t.date >= CurrentPeriod && t.date <= NextPeriod
            select t;
    }
}
Run Code Online (Sandbox Code Playgroud)

看起来很好,它的工作原理,但SQL不好:

SELECT [t0].[id], [t0].[account_id], [t0].[date], [t0].[description], [t0].[amount], [t0].[sign]
FROM [dbo].[transactions] AS [t0]
WHERE [t0].[account_id] = @p0
Run Code Online (Sandbox Code Playgroud)

即:它将整个事务集拉下来并使用LINQ for Objects处理它.我已经尝试取出where子句,orderby子句,用常量替换日期,它仍然是客户端完成的.

为了比较,我尝试直接从数据上下文调用Transactions集合:

DateTime dtStart = account.CurrentPeriod;
DateTime dtEnd = account.NextPeriod;
IEnumerable<Transaction> trans=
                from t in MyDataContext.Transactions
                orderby t.date
                where t.date >= dtStart && t.date <= dtEnd && …
Run Code Online (Sandbox Code Playgroud)

linq entity-framework linq-to-sql

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

SQLite优化多选插入

我已经使用SQL多年了,但很少有更简单的插入和选择等...所以我不是SQL专家.我想知道我是否可以帮助优化我在SQLite上执行的更复杂的SQL语句,从PHP到PDO.

声明似乎工作正常,似乎需要更长的时间,我预期(或者我可能只是期望太多).

这是SQL:

INSERT OR IGNORE INTO MailQueue(SubscriberID, TemplateID)
    SELECT Subscribers.ID, '1' AS TemplateID
    FROM Subscribers 
    INNER JOIN SubscriberGroups ON Subscribers.ID=SubscriberGroups.SubscriberID
    WHERE SubscriberGroups.GroupID IN ('1', '2', '3')
    AND Subscribers.ID NOT IN 
        ( 
        SELECT Subscribers.ID FROM Subscribers 
        INNER JOIN SubscriberGroups ON Subscribers.ID=SubscriberGroups.SubscriberID
        WHERE SubscriberGroups.GroupID IN ('4', '5', '6')
        );
Run Code Online (Sandbox Code Playgroud)

我得到的是一个或多个组中的订阅者列表.我想将订阅者添加到邮件队列中,选择属于一个或多个组(1,2,3)的订阅者,但排除那些也在另一组组中的订阅者(4,5,6).

首先,是上面的SQL典型的如何做到这一点?

其次,我应该有什么指标尽可能有效地完成这项工作?

目前,在平均规格LAMP上通过大约5000个订户记录(以及少数几个组)需要大约30秒.

在一天结束时,表现并不是那么重要,但我想更好地理解这些东西,所以任何见解都非常受欢迎.

布拉德

sql sqlite

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

msbuild无法注册输出

我试图让我们的构建脚本(使用MSBuild)在Vista上正常工作,并且我发现将注册输出(在链接器选项中)选项设置为True的项目无法从命令行构建,如下所示:

项目:错误PRJ0050:无法注册输出.请尝试启用每用户重定向或使用提升的权限从命令提示符注册该组件.

虽然我可以轻松地为一台机器修复此问题,但可以通过运行管理员或任何我希望构建脚本为任何开发机器"正常工作".

即使刚刚注册失败但是继续构建也会令人满意.有什么建议?

布拉德

msbuild regsvr32 visual-studio-2008 visual-studio

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

扩展jQuery的奇怪语法

我最近在另一篇文章中看到了这段代码(jQuery在文本区域中设置光标位置)

new function($) {
    $.fn.setCursorPosition = function(pos) {
        // function body omitted, not relevant to question
    }
} (jQuery);
Run Code Online (Sandbox Code Playgroud)

经过太长时间试图理解它在做什么后,我终于发现它只是用参数$创建一个新函数,然后用jQuery作为参数值调用它.

实际上,它只是这样做:

jQuery.fn.setCursorPosition = function(pos) {
    // function body omitted, not relevant to question
}
Run Code Online (Sandbox Code Playgroud)

原始的,更令人困惑的版本是什么原因?

javascript jquery

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

MonoTouch OpenTK和UniformMatrix4

我正在尝试将OpenTK Matrix4传递给着色器制服,但GL.UniformMatrix4似乎没有合适的过载.重载接受float或者float[]ref float.类似地,我找不到将Matrix4实例转换为float数组的方法 - 我已经看到一个在Matrix4上使用ToArray方法的示例,但这似乎不存在于我正在使用的发行版中.

当然,我遗漏了一些简单的东西,因为这对于将模型/视图/投影矩阵传递给着色器非常重要.

我正在使用最新版本的MonoTouch的OpenTK版本.

iphone opengl-es xamarin.ios opentk

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

如何确定dnu/dotnet发布的输出文件夹

当我发布我的项目时

dotnet publish

它输出到一个文件夹

bin/Debug/dnxcore50/osx.10.11-x64/publish

(或者可能是Release等价物)

是否可以为project.json文件中指定的postpublish脚本确定此文件夹位置?

coreclr dnx dotnet-cli

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

.NET 与 .NET Core 2 的不同 P/Invoke 入口点

我正在将一些代码从 .NET (4.5) 移动到 .NET Core (2) 并且有一个像这样的多目标项目......

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFrameworks>net45;netcoreapp2.0</TargetFrameworks>
Run Code Online (Sandbox Code Playgroud)

代码库使用CopyMemory来自 kernel32的 Win32 API 函数,但我发现我需要根据我的目标框架使用不同的入口点名称。

#if NET45
    [DllImport("kernel32.dll", EntryPoint = "CopyMemory", SetLastError = false)]
#else
    [DllImport("kernel32.dll", EntryPoint = "RtlCopyMemory", SetLastError = false)]
#endif
    public static extern void CopyMemory(IntPtr dest, IntPtr src, IntPtr count);
Run Code Online (Sandbox Code Playgroud)

我会认为这一切都比 .NET 低

所以,问题是……为什么?

.net windows pinvoke .net-core

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

如何在ADO.NET中使用MySQL用户变量

MySQL SQL命令可以包含以"@"开头的用户变量.

MySQL ADO.NET连接器也使用'@'作为命令参数.

有没有办法逃避'@'字符,所以我可以在通过ADO.NET发送到MySQL的SQL语句中使用用户变量?


我正在尝试做这样的事情:

UPDATE company 
    SET next_job_id = @jobid:=next_job_id+1 
    WHERE company_id = @companyid; 
SELECT @jobid;
Run Code Online (Sandbox Code Playgroud)

其中@jobid是MySQL用户变量,而@companyid是参数.

mysql ado.net ado

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

记录Sequelize Migrations

刚开始使用Sequelize并试图让迁移工作,并希望看到迁移实际上针对数据库运行的SQL.

我发现了一个github注释,建议如何将日志记录传递给调试模块,但是我在哪里放置"选项".

options: {
  logging: debug('sequelize')
}
Run Code Online (Sandbox Code Playgroud)

sequelize.js

3
推荐指数
4
解决办法
4409
查看次数

git-输出中的奇怪字符(msys-git)

我正在使用msys-git并注意到在执行git pull之后我经常在输出中得到奇怪的字符.我认为这些是某些终端可能理解的某种控制字符,但在标准的Windows命令提示符下,它们会导致:

 Source/MidiLib/AudioChannelMixer.cpp      ?[m |    6 ?[32m+?[m
 Source/MidiLib/AudioEnvironment.cpp       ?[m |    4 ?[32m+?[m
 Source/MidiLib/EventIDs.h                 ?[m |    1 ?[32m+?[m
 Source/MidiLib/MidiAssignable.cpp         ?[m |  207 ?[32m+++++++++++++++++++++++++?[m?[31m---?[m
 Source/MidiLib/MidiAssignable.h           ?[m |   39 ?[32m+++++?[m?[31m-?[m
 Source/MidiLib/MidiAssignmentsDlg.cpp     ?[m |  101 ?[32m++++++++++++?[m?[31m--?[m
Run Code Online (Sandbox Code Playgroud)

这不是一个真正的问题,但很烦人......是否有办法禁用这些字符并获得干净的输出?

git msysgit

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

NSArray的不区分大小写的indexOfObject

是否有一种简单的方法可以在NSStrings的NSArray中进行不区分大小写的查找?NSArray的参考文献提到对案例不敏感,但没有提及查找.

我可以轻松地编写我自己的fn来做它,但想知道是否有更简单的方法.

objective-c nsarray

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

使用CoreBluetooth可以获得蓝牙LE设备的原始扫描记录

我正在努力更好地了解蓝牙LE,并一直在玩iOS和Android的蓝牙堆栈和各种信标(StickNFind,Estimote等......)

  • 在Android上,当一个设备被发现时,我得到一个原始的"扫描记录" - 我可以解析自己的一小段数据来获取设备的广告数据.
  • 在iOS上,这由iOS解析并显示为字典.

很公平,除了我试图使用CoreBluetooth(即:非位置服务)从iBeacon读取广告数据,并注意到iOS似乎剥离了iBeacon设备的制造商特定广告数据.

我意识到我应该使用Apple批准的方法来检测iBeacons,但它并不适合我们的用例,并想知道是否有办法解决它.

bluetooth ios ibeacon

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