使用课程:
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
)来完成?