小编spe*_*der的帖子

您可以为公用表表达式创建嵌套的WITH子句吗?

WITH y AS (
    WITH x AS (
        SELECT * FROM MyTable
    )
    SELECT * FROM x
)
SELECT * FROM y
Run Code Online (Sandbox Code Playgroud)

这样的事情有用吗?我之前尝试过,但我无法让它发挥作用.

sql t-sql sql-server nested common-table-expression

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

我如何使用ROW_NUMBER()?

我想用它ROW_NUMBER()来...

  1. 得到max(ROW_NUMBER())- >或者我猜这也是所有行的计数

我试过做:

SELECT max(ROW_NUMBER() OVER(ORDER BY UserId)) FROM Users
Run Code Online (Sandbox Code Playgroud)

但它似乎没有工作......

  1. 要获得ROW_NUMBER()使用给定的资料片,即得.如果我有一个名字,我想知道名字来自哪一行.

我认为这将类似于我为#1尝试的东西

SELECT ROW_NUMBER() OVER(ORDER BY UserId) From Users WHERE UserName='Joe'
Run Code Online (Sandbox Code Playgroud)

但这也不起作用......

有任何想法吗?

sql sql-server row-number

166
推荐指数
7
解决办法
80万
查看次数

cygwin命令复制到Windows剪贴板

我在这里看到:

http://www.pgrs.net/2008/1/11/command-line-clipboard-access

在linux和osx中有一种方法可以从命令行复制到剪贴板.所以我运行了我的cygwin setup.exe,但找不到xsel包.我猜也许这个软件包还没有被移植到Windows?看起来在Windows中有一个工具可以做到:

http://www.labnol.org/software/tutorials/copy-dos-command-line-output-clipboard-clip-exe/2506/

我想我会试试 - 但我认为我会问是否有人找到了一个好的解决方案.

cygwin

81
推荐指数
5
解决办法
3万
查看次数

为什么.Contains慢?通过主键获取多个实体的最有效方法?

通过主键选择多个实体的最有效方法是什么?

public IEnumerable<Models.Image> GetImagesById(IEnumerable<int> ids)
{

    //return ids.Select(id => Images.Find(id));       //is this cool?
    return Images.Where( im => ids.Contains(im.Id));  //is this better, worse or the same?
    //is there a (better) third way?

}
Run Code Online (Sandbox Code Playgroud)

我意识到我可以做一些性能测试来比较,但我想知道是否实际上有比两者更好的方法,并且我正在寻找一些启示,这两个查询之间的区别是,如果有的话,一旦它们一直存在"翻译".

.net c# linq entity-framework entity-framework-4.1

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

代码优先DbMigrator在从不同的机器构建时导致错误

我们在SCM下有一个项目.当我从我的机器构建它并通过msdeploy发布到远程服务器时,一切正常.

当我的同事用同一个项目尝试相同的事情时,从SCM新推出,在远程服务器实体框架4.3.1上DbMigrator抛出:

未应用自动迁移,因为它会导致数据丢失.

事实证明,初始发布到远程服务器的人似乎是"赢家".如果我们将数据库放在远程服务器上,那么我的同事可以发布并且我被锁定了.我的出版物导致上述相同的错误.

配置DbMigrator看起来像这样:

        var dbMgConfig = new DbMigrationsConfiguration()
        {
            AutomaticMigrationsEnabled = true,
            //***DO NOT REMOVE THIS LINE, 
            //DATA WILL BE LOST ON A BREAKING SCHEMA CHANGE,
            //TALK TO OTHER PARTIES INVOLVED IF THIS LINE IS CAUSING PROBLEMS    
            AutomaticMigrationDataLossAllowed=false,
            //***DO NOT REMOVE THIS LINE,
            ContextType = typeof(TPSContext),
            MigrationsNamespace = "TPS.Migrations",
            MigrationsAssembly = Assembly.GetExecutingAssembly()
        };
Run Code Online (Sandbox Code Playgroud)

我认为这与新表__MigrationHistory和存储在其行中的令人讨厌的长十六进制字符串有关.

我不想对出版生活承担全部责任.我能指出什么?

c# entity-framework ef-code-first entity-framework-4.3 dbmigrator

43
推荐指数
1
解决办法
9657
查看次数

插入后获取新ID

我正在将一堆新行插入到表中,该表定义如下:

CREATE TABLE [sometable](
    [id] [int] IDENTITY(1,1) NOT NULL,
    [someval] sometype NOT NULL
)
Run Code Online (Sandbox Code Playgroud)

使用以下插入:

insert into sometable select somefield as someval from othertable
Run Code Online (Sandbox Code Playgroud)

当我完成后,我想知道所有新插入的行的ID.SCOPE_IDENTITY()仅返回插入的最后一行ID.

我怎样才能获得所有新ID?

一种让人想到的方法是从sometable和scope_identity()后插入中获取当前最大的标识,并使用这两个值从sometable中进行选择.例如:

declare @currentMaxId int;
select @currentMaxId=MAX(id) from sometable
insert into sometable select somefield as someval from othertable
select * from sometable where id>@currentMaxId and id<=SCOPE_IDENTITY()
Run Code Online (Sandbox Code Playgroud)

有更好的模式吗?

sql sql-server identity insert

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

在事件调度之前检查null ...线程安全吗?

让我感到困惑的东西,但从来没有引起任何问题......推荐的事件发送方式如下:

public event EventHandler SomeEvent;
...
{
    ....
    if(SomeEvent!=null)SomeEvent();
}
Run Code Online (Sandbox Code Playgroud)

在多线程环境中,此代码如何保证另一个线程不会更改SomeEvent检查null和事件调用之间的调用列表?

c# events multithreading

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

等待基于任务的队列

我想知道是否存在ConcurrentQueue的实现/包装器,类似于BlockingCollection,其中从集合中获取不会阻塞,而是异步并且将导致异步等待直到将项目放入队列中.

我已经提出了自己的实现,但它似乎没有按预期执行.我想知道我是否正在重塑已经存在的东西.

这是我的实现:

public class MessageQueue<T>
{
    ConcurrentQueue<T> queue = new ConcurrentQueue<T>();

    ConcurrentQueue<TaskCompletionSource<T>> waitingQueue = 
        new ConcurrentQueue<TaskCompletionSource<T>>();

    object queueSyncLock = new object();

    public void Enqueue(T item)
    {
        queue.Enqueue(item);
        ProcessQueues();
    }

    public async Task<T> Dequeue()
    {
        TaskCompletionSource<T> tcs = new TaskCompletionSource<T>();
        waitingQueue.Enqueue(tcs);
        ProcessQueues();
        return tcs.Task.IsCompleted ? tcs.Task.Result : await tcs.Task;
    }

    private void ProcessQueues()
    {
        TaskCompletionSource<T> tcs=null;
        T firstItem=default(T);
        while (true)
        {
            bool ok;
            lock (queueSyncLock)
            {
                ok = waitingQueue.TryPeek(out tcs) && queue.TryPeek(out firstItem);
                if (ok)
                { …
Run Code Online (Sandbox Code Playgroud)

c# queue asynchronous async-await .net-4.5

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

Linq to SQL DataContext的多个/单个实例

我有一个项目,有许多不同的类在一组通用的表中查询和修改数据.我已经设置了一个.dbml文件,它为我们提供了一个DataContext类.我的问题是,是否应该由所有对象使用DataContext的单个实例,或者是否可以安全使用多个实例.我也想知道单个DataContext的线程安全性,以及是否应同步访问它的方法.

c# linq-to-sql

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

解析XML时防止DTD下载

使用XmlDocument.Load时,我发现如果文档引用DTD,则会与提供的URI建立连接.有没有办法防止这种情况发生?

.net c# xml

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