0
次の意味は?連合または連結方式の中「ユニオンまたはコンカットのタイプが異なる順序で割り当てられている」とはどういう意味ですか?
タイプは、メンバーは、私は2つのサブクラスを連結し、リストでそれらを並べ替えしようとしている
異なる順序で割り当てられたが、私はこのエラーを取得しています。私のコードはこのように見えます。私は何よりもエラーの説明をしたいと思いますが、これに対する解決策も高く評価されます。
public List<InterfaceItem> GetTransactions(string id)
{
DataClasses1DataContext context = new DataClasses1DataContext();
var tollQuery = from t in context.Tolls
where t.account_id.Equals(id)
select new TollTest { Date = t.status_time, Amount = t.fee, Plate = t.plate_id };
var paymentQuery = from p in context.Payments
where p.account_id.Equals(id)
select new PaymentTest { Date = p.status_time, Amount = p.payment1, PaymentMethod = p.credit_type };
IQueryable<InterfaceItem> toll = tollQuery;
IQueryable<InterfaceItem> payment = paymentQuery;
var all = (toll.Concat(payment)).ToList();
return all;
}
ここでは推測していますが、通常は、選択したフィールドがタイプによって一致する必要があります(論理的にも同じです)。私は(再び)plate_idとcredit_typeは異なるタイプであると推測していますか? PaymentMethod = 0を(一時的に)変更するとどうなりますか?その場合は機能しますか? –
plate_idとcredit_typeは両方とも文字列です。 TollTestとPaymentTestは、Date(DateTime)とAmount(10進)を継承するInterfaceItemのサブクラスです。リストをサブクラスとして返すとうまくいきますが、2つを結合することについてはわかりません。私はtollQuery.Cast()を試しました。Union(paymentQuery.Cast ())。OrderBy(x => x.Date).ToList();それは私に同じエラーを与えるだけです –
Max
InterfaceItemはPlateとPaymentMethodフィールドを持っていますか?その場合は、特定のタイプではなくそのタイプを選択またはキャストしてみてください。または、両方のフィールドが子オブジェクトに存在する場合は、新しいTollTest {Date = t.status_time、Amount = t.fee、Plate = t.plate_id、PaymentMethod = null}のように明示的に選択してください。 – Nikki9696