我是 EF 的新手,根据本教程,我设置了我的代码优先类,以将基本调用TableA's
ID 作为主键和外键,TableB
如下所示:
[Table("TableA")]
public abstract class TableA
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
public string Description { get; set; }
}
[Table("TableB")]
public class TableB: TableA
{
[Key]
public int ID { get; set; }
public int Width { get; set; }
}
在控制器中进行查询时:
var a = db.TableB.ToList();
对于 tableB ID,我得到 0。但是在调试时,我可以看到具有适当 ID 的基类。所以我做了一个循环,并在其中使用item.ID = ((TableA)(item)).ID;
.
上面的工作方式与分配 ID 相同,因此我可以在视图中看到它们,但这是正确的方法吗?还有其他解决方案吗?
编辑: 这是 dbcontext:
public class Context : DbContext
{
public ProductContext()
: base("DefaultConnection")
{
}
public DbSet<TableA> TableA { get; set; }
public DbSet<TableB> TableB { get; set; }
}