如何检查是否存在 id 获取 SQL Server 或 C# 中的新记录

标签: Linq SQLServer C#
发布时间: 2017/2/26 15:50:14
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

如何获取记录在数据库中,通过检查, OrgId 不是在低于 TransactionDate

在这里它我当前的代码在 SQL 中。但我想申请在 C# LINQ 查询中之后的办法是在 SQL Server 中。

select 
    refno, OrgId, typeCode, fullnames 
from 
    Transactions 
where 
    TransactionDate >= '01/06/2015'
    and OrgId not in (select OrgId from Transactions 
                      where TransactionDate < '01/06/2015')

解决方法 1:

我不知道关于您的查询和它做什么,但我可以给你的 linq 你拿的是什么。根据数据结构,它可能是那 TransactionDate > = 日期已经意味着第二个条件。

var date = new DateTime("01/06/2015");
var result = Transactions.Where(x => x.TransactionDate >= date && 
    !Transactions.Where(y => y.TransactionDate < date)
            .Select(y => y.OrgId).Contains(x.OrgId))
        .Select(x => new {
            refno = x.refno,
            OrgId = x.OrgId,
            typeCode = x.typeCode,
            fullnames = x.fullnames
        });

这也选择到一个匿名类型,将可能看创建一个类,用于要选入的结果。

public class Result{
    public int refno { get; set; }
    public int OrgId { get; set; }
    public string typeCode { get; set; }
    public string fullnames { get; set; }
}

var date = new DateTime("01/06/2015");
var result = Transactions.Where(x => x.TransactionDate >= date && 
    !Transactions.Where(y => y.TransactionDate < date)
            .Select(y => y.OrgId).Contains(x.OrgId))
        .Select(x => new Result(){
            refno = x.refno,
            OrgId = x.OrgId,
            typeCode = x.typeCode,
            fullnames = x.fullnames
        });
官方微信
官方QQ群
31647020