Moje niezmapowane właściwości w bryzie nie działają z projekcją
Mam następującą jednostkę:
public class Invoice
{
[Key]
public int Id { get; set; }
public DateTime? ArchiveDate { get; set; }
public DateTime? ClotureDate { get; set; }
...
}
Chciałbym wiedzieć, czy moja faktura jest archiwizowana czy zamykana za pomocą flagi (boolean). W tym celu dodałem 2 niezmapowane właściwości w mojej bryzie, jak poniżej:
public class Invoice
{
[Key]
public int Id { get; set; }
public DateTime? ArchiveDate { get; set; }
public DateTime? ClotureDate { get; set; }
[NotMapped]
public bool Archived { get { return ArchiveDate.HasValue; } }
[NotMapped]
public bool Clotured { get { return ClotureDate.HasValue; } }
...
}
Teraz mogę wysłać zapytanie do mojego obiektu bryzy w ten sposób:
var query = entityQuery.from("Invoices")
.where('id', '==', id)
.toType('Invoice');
Powyższe wywołanie zwróci wszystkie właściwości mojego podmiotu faktury (w tym zarchiwizowane i zakryte). To dobrze działa.
Ale potrzebuję tylko kilku specyficznych właściwości (dla wydajności). Potem próbuję:
var query = entityQuery.from("Invoices")
.where('id', '==', id)
.select("id, archived, clotured")
.toType('Invoice');
Dostałem błąd:Określony element typu „Zarchiwizowany” nie jest obsługiwany w LINQ do elementów. Obsługiwane są tylko inicjalizatory, elementy encji i właściwości nawigacji jednostki.
Bardzo frustrujące. Jakiś pomysł, dlaczego nie mogę wykonać takiego zapytania?
A może ktoś ma inne rozwiązanie?
Wielkie dzięki.