Hallo,
-- EDIT --
hab's raus. Mal wieder 1 min nach dem Absetzen des Posts fiel es wie Schuppen von den Haaren.
Es ist das Feld Spielpläne in ATEntity, das das Problem verursacht. Wird das auskommentiert, dann läuft alles.
Trotzdem lief das Ganze auf EF6 und es bleibt die Frage, Bug oder Feature?
-- --
ich verwende .NET 5 und EF Core für eine Projekt, das ich vorher auf .NET Framework 4.7.2 und EF 6 erfolgreich laufen hatte. Es sollte ja nichts großartiges zu verändern sein! ??
Meine Entitätsklassen:
und mein Context
Und dann kommt folgende Abfrage
Hier schmiert mein Programm ab. Auf dem Server kommt folgendes SQL-Kommando an:
wo kommt
ATID ist ein Fremdschlüssel auf ATEntity.ATID. Soweit so gut. Aber was soll das ATEntityATID?? Das gibt es doch gar nicht? Bug oder Feature??
Noch ein paar Details. Ich greife auf eine PostgreSQL Datenbank zu und verwende dazu das Npgsql Core Paket.
Gruß
MQ
-- EDIT --
hab's raus. Mal wieder 1 min nach dem Absetzen des Posts fiel es wie Schuppen von den Haaren.
Es ist das Feld Spielpläne in ATEntity, das das Problem verursacht. Wird das auskommentiert, dann läuft alles.
Trotzdem lief das Ganze auf EF6 und es bleibt die Frage, Bug oder Feature?
-- --
ich verwende .NET 5 und EF Core für eine Projekt, das ich vorher auf .NET Framework 4.7.2 und EF 6 erfolgreich laufen hatte. Es sollte ja nichts großartiges zu verändern sein! ??
Meine Entitätsklassen:
C#-Quellcode
- [Table("tblAbenteuer")]
- public class ATEntity {
- [Key]
- public int ATID { get; set; }
- [Required]
- public string ATName { get; set; }
- public string ATBem { get; set; }
- // Navigation
- public ICollection<SpielplanEntity> Spielpläne { get; set; }
- public ATEntity() {
- Spielpläne = new HashSet<SpielplanEntity>();
- }
- public override string ToString() => ATName;
- }
C#-Quellcode
- [Table("tblSpielpläne")]
- public class SpielplanEntity {
- [Key]
- public int SpielplanID { get; set; }
- [Required]
- //[ForeignKey("Abenteuer")]
- public int ATID { get; set; }
- [Required]
- public string Titel { get; set; }
- public string Transport { get; set; }
- public string Generäle { get; set; }
- public string KartePfad { get; set; }
- public override string ToString() => Titel;
- }
und mein Context
C#-Quellcode
- class DSOContext :DbContext {
- public ILoggerFactory loggerFactory;
- public virtual DbSet<ATEntity> Abenteuer { get; set; }
- public virtual DbSet<SpielplanEntity> Spielpläne { get; set; }
- public virtual DbSet<SpielzugEntity> Spielzüge { get; set; }
- public DSOContext() {
- loggerFactory = LoggerFactory.Create(xx => { xx.AddConsole(); });
- }
- protected override void OnConfiguring(DbContextOptionsBuilder oBuilder) {
- if (!oBuilder.IsConfigured) {
- oBuilder.UseNpgsql(Properties.Resources.ConnectionString);
- oBuilder.UseLoggerFactory(loggerFactory);
- oBuilder.EnableSensitiveDataLogging();
- }
- }
- protected override void OnModelCreating(ModelBuilder modelBuilder) {
- //throw new NotImplementedException();
- }
- }
Und dann kommt folgende Abfrage
Hier schmiert mein Programm ab. Auf dem Server kommt folgendes SQL-Kommando an:
wo kommt
t."ATEntityATID"
her?? In der Version !Core taucht dieses im SQL Kommando nicht auf.ATID ist ein Fremdschlüssel auf ATEntity.ATID. Soweit so gut. Aber was soll das ATEntityATID?? Das gibt es doch gar nicht? Bug oder Feature??
Noch ein paar Details. Ich greife auf eine PostgreSQL Datenbank zu und verwende dazu das Npgsql Core Paket.
Gruß
MQ
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „MasterQ“ ()