簡體   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