chcę lewo przyłączyć dwie tabele i podsumować jedno pole więc zrobiłem to zapytanie:Używanie LINQ LEFT JOIN z wieloma warunkami i podzapytania
IQueryable<Reference.Inventory.SearchDetailRequester> _qRequester =
from a in dbErp.EPROC_TR_ER_DETAIL
join b in dbErp.EPROC_TR_INVENTORY on
new Reference.Inventory.SearchDetailRequester { ID_REQUEST = a.ID_REQUEST , ID_KATALOG = a.ID_KATALOG}
equals
new Reference.Inventory.SearchDetailRequester { ID_REQUEST = b.ID_REQUEST, ID_KATALOG = b.ID_KATALOG }
into inv_join
from c in inv_join.DefaultIfEmpty()
where a.ID_REQUEST == ID_REQUEST && a.APROVE_BY_DS == 1 && a.APROVE_BY_GS == 1
select new Reference.Inventory.SearchDetailRequester
{
ID_KATALOG = a.ID_KATALOG,
TYPE_OF_GGS = a.TYPE_OF_GGS,
TRANSACTION_TYPE = "OUT",
DATE = c.DATE ?? "",
QTY = -1 * c.QTY ?? a.QTY,
ID_INVENTORY = c.ID_INVENTORY,
QTY_AVAILABLE = ((from d in dbErp.EPROC_TR_INVENTORY
where d.ID_KATALOG == a.ID_KATALOG
group d by new { d.ID_KATALOG } into e
select new { qty_ava = (System.Int32)e.Sum(p => p.QTY ?? 0) }).FirstOrDefault().qty_ava)
};
ale kiedy debugowania mam komunikat:
Typ "Reference.Inventory.SearchDetailRequester" pojawia się w dwóch niekompatybilnych strukturalnie inicjacjach w ramach pojedynczego zapytania LINQ do Entities. Typ można zainicjować w dwóch miejscach w tym samym zapytaniu, ale tylko wtedy, gdy te same właściwości są ustawione w obu miejscach i te właściwości są ustawione w tej samej kolejności.
Czy ktoś może pomóc?
nie działa .net błąd odczytu z tej wiadomości: korpus zapytanie musi skończyć z klauzuli SELECT lub klauzuli grupowej – Karl
nadal nie działa z tym messge : Typ jednego z wyrażeń w klauzuli join jest niepoprawny. Wnioskowanie typu nie powiodło się w wywołaniu "GroupJoin". – Karl
Czy jedna z właściwości w anonimowym typie nullable dla b, ale nie dla a? (int? ID_Request dla! = int ID_Request dla b, nawet jeśli są one takie same w db) –