簡體   English   中英

Linq查詢預期結果

[英]Linq Query for expected result

public class Actor
    {
        public virtual int Id { get; set; }    
        public virtual string Name { get; set; }
        public virtual string ShortName { get; set; }  
        public virtual IList<BankAccount> BankAccounts { get; set; }
    }
public class BankAccount 
    {
        public virtual int Id { get; set; }
        public virtual string IbanPrefix { get; set; }
        public virtual string Number { get; set; }
    }
public class BankAccountModel
{
    public int Id { get; set; }
    public string IbanPrefix { get; set; }
    public string Number { get; set; }
}
public BankAccountModel[] BankAccounts { get; set; }

我想使用linq查詢選擇垂直actor ID的陣列BankAccounts屬性中的所有bankaccounts。

我嘗試了如下

var query = Repository.Query<Actor>().Where(a => a.Id == parameters.ActorId)
                        .Select(a => a.BankAccounts);

            BankAccounts  = query.Select(account => account.Select(a=>
                                   new BankAccountModel
                                   {
                                      Description = a.Description,
                                       IbanPrefix = a.IbanPrefix,
                                       Id = a.Id,
                                       Number = a.Number
                                   }).ToArray());

但是它對我不起作用。

Repository
 .Query<Actor>()
 .Where(a => a.Id == actorId)
 .SelectMany(a => a.BankAccounts)
 .Select(ba => new BankAccountModel
                   {
                       IbanPrefix = ba.IbanPrefix,
                       Id = ba.Id,
                       Number = ba.Number
                   }
        );

如果您想將actros銀行帳戶與BankAccounts屬性進行匹配,請嘗試以下操作,

Repository
 .Query<Actor>()
 .Where(a => a.Id == actorId)
 .SelectMany(a => a.BankAccounts)
 .Where(ba => BankAccounts.Any(ac => ac.Id == ba.Id))
 .Select(ba => new BankAccountModel
                   {
                       IbanPrefix = ba.IbanPrefix,
                       Id = ba.Id,
                       Number = ba.Number
                   }
        );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM