0

次のプロパティを持つInvoice Itemエンティティがあるとします。

InvoiceItem

  • ID
  • 日にち
  • 番号

請求書アイテムには、次のように 2 つの異なる子エンティティ (TPT) があります。

WarehouseInvoiceItem : InvoiceItem

  • 間隔

FreightInvoiceItem : InvoiceItem

  • 重さ

ここで、次の構造で DTO を埋めたいと思います。

InvoiceItemDto

  • ID
  • 日にち
  • 番号
  • ?量
  • ?間隔
  • ?重さ

これは私がそうしようとしている方法です:

db.InvoiceItem.Select(i=>new InvoiceItemDto{
   Id = i.Id,
   Date = i.Date, ...
});

次のように使用できないため、駆動エンティティの特別なフィールド (たとえば、WarehouseInvoiceItem の Duration) にアクセスできませんofType

db.InvoiceItem.ofType<WarehouseInvoiceItem>().Select()

代わりに、次のように選択できればいいのにと思います。

db.InvoiceItem.Select(i=>new InvoiceItemDto{
   Id = i.Id,
   Date = i.Date,
   Duration = (i is WarehouseInvoiceItem)? (WarehouseInvoiceItem)i.Duration : null,
   Quantity = (i is WarehouseInvoiceItem)? (WarehouseInvoiceItem)i.Quantity : null,
   Weight = (i is FreightInvoiceItem)? (FreightInvoiceItem)i.Weight : null
});

この理由でクエリを管理するにはどうすればよいですか? よろしくお願いします。

4

0 に答える 0