第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

LINQ連接查詢返回匹配的記錄

LINQ連接查詢返回匹配的記錄

C#
慕蓋茨4494581 2023-08-20 10:24:02
class loan{  public money Value{set; get;}  public int id{set; get;}  public int CustomerId{set; get;}}class loanPayment{  public int id{set; get;}   public int LoanId{set; get;}  public money Value{set; get;}}我嘗試了這個 LINQ 代碼://_CustomerId is a parameter DatabaseContext context = new DatabaseContext();  var query =           (from l in context.Loan            where l.CustomerId == _CustomerId            join lp in context.LoanPayment on l.Id equals lp.LoanId into j1            from Payments in j1            select Payments             ).ToList();現(xiàn)在我的問題是,此代碼將僅返回loan至少有一項的記錄payment,但我希望記錄與其付款相關(guān)聯(lián),并且我還想要尚未付款的貸款,我該如何執(zhí)行此操作?像這樣的東西:第一筆貸款有付款,但第二筆沒有。
查看完整描述

2 回答

?
白衣非少年

TA貢獻1155條經(jīng)驗 獲得超0個贊

您確實不需要在 Linq 中加入任何關(guān)系來建立關(guān)系。您只需要在模型中定義您的關(guān)系(生成器會自動為您執(zhí)行此操作,前提是您已在數(shù)據(jù)庫本身中設(shè)置了關(guān)系 - 或者您直接在模型中執(zhí)行此操作,例如首先使用代碼)。以下示例展示了為什么不需要它,以及如何使用導(dǎo)航屬性(基于 MS SQL Northwind 示例數(shù)據(jù)庫):


string defaultConString = @"server=.\SQLExpress2012;Database=Northwind;Trusted_Connection=yes;";


void Main()

{

    var ctx = new MyContext(defaultConString);

    var customerId = "FISSA";


    var customer = ctx.Customers

        .Include(c => c.Orders)

        .SingleOrDefault(c => c.CustomerId == customerId);


    if (customer != null)

    {

        Console.WriteLine($"{customer.CompanyName}, Orders: {customer.Orders.Count()}");

        //      var frmMusteriSiparisleri = new Form { Text = string.Format("[{0}] - Siparisler", customerId) };

        //      var dgvSiparisler = new DataGridView { Dock = DockStyle.Fill, ReadOnly = true, DataSource = customer.Orders.ToList() };

        //      frmMusteriSiparisleri.Controls.Add(dgvSiparisler);

        //      frmMusteriSiparisleri.ShowDialog();

    }

}



public class MyContext : DbContext

{

    public MyContext(string connectionString)

       : base(connectionString)

    { }

    public DbSet<Customer> Customers { get; set; }

    public DbSet<Order> Orders { get; set; }

    public DbSet<OrderDetail> OrderDetails { get; set; }

    public DbSet<Product> Products { get; set; }

}




public class Customer

{

    [Key]

    public string CustomerId { get; set; }

    public string CompanyName { get; set; }

    public string ContactName { get; set; }

    // ...

    public virtual List<Order> Orders { get; set; }

}


public class Order

{

    [Key]

    public int OrderId { get; set; }

    public string CustomerId { get; set; }

    public DateTime OrderDate { get; set; }

    public DateTime? ShippedDate { get; set; }

    [ForeignKey("CustomerId")]

    public Customer Customer { get; set; }

    public virtual List<OrderDetail> OrderDetails { get; set; }

}


[Table("Order Details")]

public class OrderDetail

{

    [Key]

    [Column(Order = 1)]

    public int OrderId { get; set; }

    [Key]

    [Column(Order = 2)]

    public int ProductId { get; set; }

    public decimal UnitPrice { get; set; }

    public Int16 Quantity { get; set; }

    [ForeignKey("ProductId")]

    public Product Product { get; set; }

    [ForeignKey("OrderId")]

    public Order Order { get; set; }

}


public class Product

{

    public int ProductId { get; set; }

    public string ProductName { get; set; }

    // ...

}



查看完整回答
反對 回復(fù) 2023-08-20
?
開滿天機

TA貢獻1786條經(jīng)驗 獲得超13個贊

您需要左連接和DefaultIfEmpty方法,如下所示:


var query = from l in context.Loan

? ? ? ? ? ? join lp in context.LoanPayment on l.Id equals lp.LoanId into j1

? ? ? ? ? ? from lp in j1.DefaultIfEmpty()

? ? ? ? ? ? select new { Loan = l, LoanPayment = lp == null ? "(No LoanPayment)"?

? ? ? ? ? ?: lp.Id.ToString() };

或者,如果您想選擇 的整個對象LoanPayment:


select new { Loan = l, LoanPayment = lp ?? new loanPayment() };


查看完整回答
反對 回復(fù) 2023-08-20
  • 2 回答
  • 0 關(guān)注
  • 138 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號