Entity Framework Core 2 ist nicht eifrig geladen eingeschlossene EntitätC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Entity Framework Core 2 ist nicht eifrig geladen eingeschlossene Entität

Post by Anonymous »

Ich habe einen Code, den ich von DotNetCore1.1 auf DotNetCore2.0 (und entsprechend EF -Kern von 1 bis 2) upgrade.

Code: Select all

[Table("company")]
public class Company
{
[Key, Column("id")]
public int Id { get; set; }

[Column("name", TypeName = "VARCHAR")]
public string Name { get; set; }

[Column("serialnumber")]
public int SerialNumber { get; set; }

[ForeignKey("serialnumber")]
public virtual CompanyTypeMarker CompanyTypeMarker { get; set; }
}

[Table("companytypemarker")]
public class CompanyTypeMarker
{
[Key, Column("serialnumber"), DatabaseGenerated(DatabaseGeneratedOption.None)]
public int SerialNumber { get; set; }

[Column("sitetype")]
public CompanyType CompanyType { get; set; } = CompanyType.Customer;
}
< /code>
Ich habe diese Linq -Abfrage: < /p>
var company = await db.Companies
.Include(c => c.CompanyTypeMarker)
.FirstOrDefault(cc => cc.SerialNumber == serialNumber);
In dotnetcore1.1, the Company entity would load, and it's associated CompanyTypeMarker entity would also be loaded and accessible via the Company.CompanyTypeMarker property
In dotnetcore2.0, the Company entity loads, but the Company.CompanyTypeMarker Entität ist null. SELECT "c"."id", "c"."name", "c"."serialnumber", "c.CompanyTypeMarker"."serialnumber", "c.CompanyTypeMarker"."companytype"
FROM "company" AS "c"
INNER JOIN "companytypemarker" AS "c.CompanyTypeMarker" ON "c"."serialnumber" = "c.CompanyTypeMarker"."serialnumber"
WHERE "c"."serialnumber" = @__SerialNumber_0
LIMIT 1
< /code>
Der generierte SQL ist ein Beweis dafür, dass EF Core die Navigationseigenschaft aufnimmt, da er den richtigen SQL -Join für die richtigen Eigenschaften generiert ... nur dass es bei C#, wenn es wieder in C#kommt, aus irgendeinem Grund, was ich nicht aufnimmt und die angeschlossenen Werte bevölkert. Wie bereits erwähnt, funktioniert dies in EF Core 1, und es scheint eine ziemlich Standard -Verwendung von Navigationseigenschaften zu sein.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post