繁体   English   中英

将sql语句转换为linq(用where条件连接两个表)

[英]convert sql statement to linq (join two tables with where condition)

我是 C# 中 linq 的大人物,在将以下语句转换为 linq 方面尝试了很多,但失败了,有人可以帮助我吗

SELECT        dbo.OFM_OffsetWells_studio.WellNames, dbo.OFM_WellActivity_studio.Date, 
dbo.OFM_WellActivity_studio.Activity, dbo.OFM_WellActivity_studio.ActivityRtf, 
dbo.OFM_WellActivity_studio.Type, 
                     dbo.OFM_WellActivity_studio.Diff, 
dbo.OFM_WellActivity_studio.Report, dbo.OFM_WellActivity_studio.LastModifiedBy, 
dbo.OFM_WellActivity_studio.LastModifiedDate
FROM            dbo.OFM_WellActivity_studio INNER JOIN
                     dbo.OFM_OffsetWells_studio ON dbo.OFM_WellActivity_studio.Alias = 
dbo.OFM_OffsetWells_studio.RubbishWellNames
WHERE        (dbo.OFM_OffsetWells_studio.WellNames = N'ZZ-04')

模型如下

public class WellActivity
{
    public Guid Id { get; set; }
    public Guid? headerId { get; set; }
    public string Alias { get; set; }
    public string Type { get; set; }
    public decimal? Diff { get; set; }
    public bool? Report { get; set; }
    public DateTime Date { get; set; }
    public string Activity { get; set; }
    public byte[] ActivityRtf { get; set; }
    public string LastModifiedBy { get; set; }
    public DateTime? LastModifiedDate { get; set; }

}


 public class OffsetWells
{
    public Guid Id { get; set; }
    public string RubbishWellNames { get; set; }
    public string WellNames { get; set; }

}

尝试以下:

class Program
{
    static void Main(string[] args)
    {
        Context db = new Context();
        var results = from wa in db.WellActivity
                      join ow in db.OffsetWells.Where(x => x.WellNames == "ZZ-04") on wa.Alias equals ow.RubbishWellNames
                      select new {
                         wellNames = ow.WellNames};
    }
}

public class Context
{
    public List<WellActivity> WellActivity { get; set; }
    public List<OffsetWells> OffsetWells { get; set; }
}

public class WellActivity
{
    public Guid Id { get; set; }
    public Guid? headerId { get; set; }
    public string Alias { get; set; }
    public string Type { get; set; }
    public decimal? Diff { get; set; }
    public bool? Report { get; set; }
    public DateTime Date { get; set; }
    public string Activity { get; set; }
    public byte[] ActivityRtf { get; set; }
    public string LastModifiedBy { get; set; }
    public DateTime? LastModifiedDate { get; set; }
}

public class OffsetWells
{
    public Guid Id { get; set; }
    public string RubbishWellNames { get; set; }
    public string WellNames { get; set; }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM