Класс с DataAnnotation [Table ("Tablename")], наследуемый другим классом с переменной get, не работает? - PullRequest
0 голосов
/ 21 ноября 2018

Работа с классом:

DBContext:

public SDBContext() : base("name=SPDBContext")
        {
            this.Configuration.LazyLoadingEnabled = false;
        }
        public DbSet<Table1> table_1 { get; set; }

Класс с аннотацией:

[Table("table_1")]
   public abstract class Table1
    {
        public int id { get; set; }
        public string name { get; set; }
        public DateTime? dt { get; set; }

    }

Обычный класс для наследования указанного выше класса:

public class InheritTable1 : Table1
    {
        public String Address { get; set; }
        public static DataTable GetTable1()
        {
            try
            {
                DataTable dt = new DataTable();
                SDBContext sdb = new SDBContext();
                var getData = sdb.table_1.ToList();
                dt.Merge(CollecTables.ToDataTable(getData));
                return dt;
            }
            catch (Exception er)
            {
                throw er;
            }
        }
    }

Реализация:

dataGridView1.DataSource = InheritTable1.GetTable1();

Если я удаляю этот раздел кода:

public String Address { get; set; }

Это работает хорошо.

Но если я бегуэтот код с public String Address { get; set; }

возвращает ошибку:

Message = "Неизвестный столбец 'Extent1.Address' в 'списке полей'"

Я знал, что Extent1 означает чтение с Table1 Class.почему он трактуется как Table1 вместо InheritTable1.

Все, что я знал: класс, который наследует абстрактный класс, может добавлять метод в любое время, когда мы захотим, но мой вопрос:

почему это нельзя сделать с помощью собственной переменной (с этим классом InheritTable1)?

...