我刚接触EF,根据这个教程,我已经设置了我的Code First类,将TableA
的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中得到了0个ID。但是在调试时,我可以看到基类具有适当的ID。所以我做了一个循环,在其中使用item.ID = ((TableA)(item)).ID;
分配ID。
上述方法可行,因为它分配了ID,所以我可以在视图中看到它们,但这是正确的方法吗?还有其他解决方案吗?
编辑: 以下是dbcontext:
public class Context : DbContext
{
public ProductContext()
: base("DefaultConnection")
{
}
public DbSet<TableA> TableA { get; set; }
public DbSet<TableB> TableB { get; set; }
}