Как включить свойство навигации без выбора новой модели? - PullRequest
2 голосов
/ 27 июня 2019

Ну, я в основном пробовал это:

_dbContext.BarcodeEvents.Include(e => e.BarcodeType).ToList();

Теперь я ожидаю, что получу список BarcodeEvents, где установлено свойство навигации BarcodeType.Проблема в том, что BarcodeType - это null.Затем я настроил EF Core для вывода сгенерированного запроса и выяснил, что он просто игнорирует объединение.

Сначала я подумал, что у меня есть какая-то ошибка в настройке моего свойства навигации, но потом я понял, что этоработает при материализации его в новую модель:

_dbContext.BarcodeEvents.Include(e => e.BarcodeType).Select(e => new
{
    e.EventTimestamp, //root property also available
    e.BarcodeType.BarcodeTypeDescription // navigation property available in this case
    //...
}).ToList();

Можно ли выбрать целое BarcodeEvents, включая BarcodeType, не создавая новую модель?

Я пробовал это, носвойство навигации по-прежнему null:

_dbContext.BarcodeEvents.Include(e => e.BarcodeType).Select(e => e).ToList();

Просто для справки, вот мои сущности:

public class BarcodeEvents
{
    [Column("EventID")]
    public Guid EventId { get; set; }

    [Column(TypeName = "datetime")]
    public DateTime EventTimestamp { get; set; }

    [Column("DeviceID")]
    public int DeviceId { get; set; }

    public byte DataType { get; set; }

    [ForeignKey(nameof(DataType))]
    public virtual BarcodeTypes BarcodeType { get; set; }

    public string RawData { get; set; }
    public string DataLabel { get; set; }
    public string DecodedBarcode { get; set; }
}

public class BarcodeTypes
{
    [Key]
    [Column("BarcodeTypeID")]
    public byte BarcodeTypeId { get; set; }

    [StringLength(50)]
    public string BarcodeTypeDescription { get; set; }
}

1 Ответ

1 голос
/ 27 июня 2019

Проблема заключалась в том, что у меня есть проект с двумя версиями Framework (Entity Framework 6 и Entity Framework Core).

Я использовал Include метод из:

using System.Data.Entity

Вместо правильный :

using Microsoft.EntityFrameworkCore
...