Automapper 12.0 Unbekannter LINQ -Ausdruck des Typs 'Standard' bei Verwendung von ProjectTO
Posted: 27 Feb 2025, 09:22
Wir sind gerade dabei, ein großes .NET -Upgrade durchzuführen (wechseln von 4,8 auf 7) und haben Probleme mit einigen unserer Projektionen. Das alles funktionierte gut mit Automapper 8 und .NET 4.8, aber seit dem Upgrade auf 12 erhalten wir jetzt keine Nicht -SupportedException: Unbekannter Linq -Expression des Typs 'Standard'.
, solange jeder verarbeitete Spalteneintrag einen Wert hat. Entweder der generische Parameter des Ergebnistyps oder die Abfrage muss einen nullbaren Typ verwenden. ' Alle zugehörigen Eigenschaften scheinen ordnungsgemäß als nullbar deklariert zu sein, sodass wir nicht sicher sind, warum dies nicht auf den Automapper übersetzt wird.>
Code: Select all
[Table("PaymentUploads")]
public class PaymentUpload
{
[Key]
[Column("PaymentUploadId")]
public int Id { get; set; }
[Required]
[MaxLength(200)]
public string FileName { get; set; }
[Required]
public byte[] RawFileContents { get; set; }
public DateTime? ProcessedOn { get; set; }
public Guid? ProcessedById { get; set; }
[ForeignKey("ProcessedById")]
public virtual ApplicationUser? ProcessedBy { get; set; }
}
< /code>
dto: < /p>
public class PaymentUploadDto
{
public int Id { get; set; }
public string FileName { get; set; }
public DateTime TransactionDate { get; set; }
public decimal TotalPaymentAmount { get; set; }
public DateTime? ProcessedOn { get; set; }
public Guid? ProcessedById { get; set; }
public ApplicationUserPreview? ProcessedBy { get; set; }
}
< /code>
Profil: < /p>
CreateProjection();
< /code>
Anforderung: < /p>
DbContext.PaymentUploads.AsNoTracking().Where(g => g.CreatedOn >= createdOnOrAfter).ProjectTo(Mapper.ConfigurationProvider);
< /code>
Wenn wir das Profil ändern, um: < /p>
CreateProjection()
.ForMember(dest => dest.ProcessedBy, opt => opt.DoNotAllowNull());