Использование одного и того же класса для шаблона репозитория и обработки данных в ВМ

У меня есть класс, который используется в Entity Framowork и в моих виртуальных машинах;

Класс:

public abstract class LegPartDbStructure
{
    [Key]
    [Column("id")]
    public int Id { get; set; }

    [Column("название1")]
    public string Text1 { get; set; }
    [Column("название2")]
    public string Text2 { get; set; }

    [Column("id_метрики")]
    public int? Size { get; set; }
    [Required]
    [Column("уровень_вложенности")]
    public int Level { get; set; }

    public override string ToString()
    {
        return Text1 + " " + Text2;
    }
}

Реализация IRep:

[Table("БПВ_на_бедре_структура")]
public partial class BPVHipStructure :LegPartDbStructure, ILegPart
{

}

public class MySqlContext : DbContext
{
    public DbSet<BPVHipStructure> BPVHipStructures { get; set; }
    public DbSet<BPVHipCombo> BPVHipCombos { get; set; }
    public DbSet<Metrics> Metrics { get; set; }
    public MySqlContext() : base("server=localhost;user=root;database=med_db;password=22222;") {

    }
}

public class BPVHipRepository : Repository<BPVHipStructure>
{
    public BPVHipRepository(DbContext context) : base(context)
    {
    }

    public IEnumerable<BPVHipStructure> LevelStructures(int level)
    {
        return dbContext.Set<BPVHipStructure>().Where(bpvhip => bpvhip.Level == level).ToList();
    }
}

Использование в моей виртуальной машине (StructureSource и usi в ComboBox):

StructureSource = new ObservableCollection<LegPartDbStructure>(base.Data.BPVHips.LevelStructures(number).ToList());

Все было хорошо, пока мне не нужно было добавить еще одно поле в LegPartDbStructure. Идея состоит в том, чтобы хранить имя из метрик, а не только идентификаторы.

[Column("id_метрики")]
public int? Size { get; set; }
[Required]
[Column("уровень_вложенности")]
public int Level { get; set; }

public string Metrics { get; set; }

public override string ToString()
{
    return Text1 + " " + Metrics + " " + Text2;
}

Но я не могу сделать это из-за 'Неизвестный столбец'Extent1.Metrics'в' списке полей '' - моя таблица в БД не имеет этого поля. Означает ли это, что мне нужно добавить дополнительный класс, который имеет ту же информацию, но хранит метрики? Как правильно добавить эту логику?


РЕШЕНИЕ:

Мне нужно добавить [Not Mapped] в мое новое поле:

[NotMapped]
public string Metrics { get; internal set; }

0 ответов

Другие вопросы по тегам