0

私は2つのエンティティを持っています:

 public class Transport
    {
        [Key]
        public int TransportID {get; set;}
        public string Model { get; set; }
        public string Brand { get; set; }
    }
    public class TransportOwner
    {
        [Key]
        public int TransportOwnerID {get; set;}
        public int OwnerID {get; set;}
        public int TransportID {get; set;}
        [ForeignKey("TransportID")]
        public virtual Transport Transport { get; set; }
    }

ViewModel では、これら 2 つのエンティティから 2 つのリストを作成しました。

public List<Transport> TransportList 
public List<OwnerTransport> OwnerTransportList

そして、これら 2 つのリストのデータを使用して、WPF/MVVM フォームの 3 番目のリストを作成する必要があります。必要な構造は次のとおりです。

OwnerTransportID
OwnerID
TransportID
Model
Brand

ViewModel.cs で次に何をすればよいですか? 新しいクラスを作成する必要がありますか?

public class OwnerTransportTransport
{
    [Key]
    public int OwnerTransportID {get; set;}
    public int TransportID {get; set;}
    public string OwnerID {get; set;}
    public string Model { get; set; }

    public string Brand { get; set; }
}

その後

List<OwnerTransport> OwnerTransportTransportList 

?? 手伝ってくれる?

linq クエリから取得したデータ:

var ownerTransportList = OwnerTransport.Select(t => new
{
    t.OwnerTransportID,
    t.OwnerID,
    t.TransportID,
    ModelName = t.Transport.ModelName,
    BrandName = t.Transport.BrandName,
}).ToList();

だから私はデータを持っていますが、それを に変換する方法がわかりませんList<OwnerTransportTranspot>

4

3 に答える 3

1

実際にこれを行うことができます:

List<OwnerTransportTransport> ListIWantToShow =
                        (from transport in dbContext.TransportOwner
                        select new OwnerTransportTransport()
                        {
                            ID = transport.ID,
                            TransportID = transport.TransportID,
                            BrandName = transport.Transport.BrandName,
                            ModelName = transport.Transport.ModelName
                        }).ToList();


public class OwnerTransportTransport
{
  public int OwnerTransportID { get; set; }
  public int TransportID { get; set; }
  public string Brand { get; set; }
  public string Model { get; set; }
}
于 2016-06-17T05:50:01.363 に答える
0

user3185569 の回答によると、私はこれを書きました:

var query = DBContext.TransportOwner.AsQueryable()
.Where(st => st.OwnerID.StartsWith(someParam));

List<OwnerTransportTransport> ListIWantToShow = query.Select(transport => new OwnerTransportTransport()
                        {
                            ID = transport.ID,
                            TransportID = transport.TransportID,
                            BrandName = transport.Transport.BrandName,
                            ModelName = transport.Transport.ModelName

                        }).ToList();

少なくとも間違いはありませんが、このコードを foreach と比較すると、非常に時間がかかりました:(しかし、この答えは私が必要としていたものでした!私はそれを受け入れます

于 2016-06-20T06:16:50.077 に答える