Как исправить ошибку System.InvalidOperationException? - PullRequest
0 голосов
/ 01 октября 2019

Я пытаюсь объединить две таблицы, используя Entity Framework, но получаю ошибку System.InvalidOperationException. Сообщение об ошибке:

Свойство 'MasterCompany' не является свойством навигации типа сущности 'UnitOfMeasure'. Метод «Включить (строка)» можно использовать только с «.»разделенный список имен навигационных свойств.

Я не уверен, почему он его выбрасывает.

Другие попытки:

  1. Я также пытался добавить public virtual MasterCompany MasterCompany { get; set; } в UnitOfMeasure, но это бросает Invalid column error.
  2. Также добавлено[Key] в MasterCompany таблице для MasterCompanyId.
  3. Но оба эти изменения выдают Invalid column name 'IsDeleted'. ошибку.

DAL Модели:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser, ApplicationRole, string>
{
  public DbSet<UnitOfMeasure> UnitOfMeasure { get; set; }
  public DbSet<MasterCompany> MasterCompany { get; set; }
}

public class UnitOfMeasure : PasBase, IAudit
{
    [Key]
    public long UnitOfMeasureId { get; set; }
    public string Description { get; set; }
    public string ShortName { get; set; }
    public string Memo { get; set; }
    public string Standard { get; set; }
    // [ForeignKey("MasterCompanyId")]
    public Int32 MasterCompanyId { get; set; }
    public bool IsActive { get; set; }
    public bool IsDeleted { get; set; }
    [NotMapped]
    public string UploadStatus { get; set; }
    [ForeignKey("MasterCompanyId")]
    public virtual MasterCompany MasterCompany { get; set; }
}

public class MasterCompany:AuditableEntity
{
    public int MasterCompanyId { get; set; }
    public string CompanyName { get; set; }
    public string TaxId { get; set; }
    public string EmailAddress { get; set; }
    public string Address { get; set; }
    public bool? IsActive { get; set; }
}

Репозиторий:

private ApplicationDbContext _appContext => (ApplicationDbContext)_context;

public IEnumerable<DAL.Models.UnitOfMeasure> getUnitOfMeasureData()
{
    return _appContext.UnitOfMeasure
        .Include("MasterCompany")
        .Where(c => c.IsDeleted == false || c.IsDeleted == null)
        .OrderByDescending(c => c.UnitOfMeasureId)
        .ToList();
}

1 Ответ

2 голосов
/ 01 октября 2019

Вам необходимо добавить свойство MasterCompany в классе UnitOfMeasure

public class UnitOfMeasure : PasBase, IAudit
{
    [Key]
    public long UnitOfMeasureId { get; set; }
    public string Description { get; set; }
    public string ShortName { get; set; }
    public string Memo { get; set; }
    public string Standard { get; set; }
    public Int32 MasterCompanyId { get; set; }
    [ForeignKey("MasterCompanyId")]
    public MasterCompany MasterCompany { get; set; }
    public bool IsActive { get; set; }
    public bool IsDeleted { get; set; }
    [NotMapped]
    public string UploadStatus { get; set; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...