Работа с классом:
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
)?