与班级合作:
数据库上下文:
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
)?
暂无答案!
目前还没有任何答案,快来回答吧!