Entity Framework Core 2 не склонной загрузки включена сущностьC#

Место общения программистов C#
Ответить
Anonymous
 Entity Framework Core 2 не склонной загрузки включена сущность

Сообщение Anonymous »

У меня есть какой -то код, который я обновляю с dotnetcore1.1 до dotnetcore2.0 (и, соответственно, EF Core от 1 до 2) < /p>
У меня есть следующая модель (конечно, анонимная, конечно), и я использую NPGSQL, чтобы поговорить с базой Postgres.

Код: Выделить всё

[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>
У меня есть этот запрос LINQ: < /p>
var company = await db.Companies
.Include(c => c.CompanyTypeMarker)
.FirstOrDefault(cc => cc.SerialNumber == serialNumber);
in dotnetcore1.1.1, компания , и это будет загружено и доступна и доступна и доступна и доступна через компанию. IS null. < /p>
Просматривая вывод журнала, EF Core генерирует следующий SQL: < /p>
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>
Сгенерированный SQL является доказательством того, что EF Core поднимает свойство навигации, поскольку он генерирует правильное соединение SQL для правильных свойств ... просто когда он возвращается в C#, по какой -то причине он не поднимает и заполняет соединенные значения. Как отмечалось ранее, это работает в EF Core 1, и это похоже на довольно стандартное использование навигационных свойств.

Подробнее здесь: https://stackoverflow.com/questions/485 ... ded-entity
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»