我不知道同时使用 TPT继承 和存储库模式在一起,所以我需要一个简单的例子。 我有一个这样的课程:
public abstract class Person
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public string LName { get; set; }
public string Address { get; set; }
}
另一个名为Doctor的类继承自Person:
[Table("Doctors")]
public class Doctor:Person
{
public string Code { get; set; }
public bool IsAssistant { get; set; }}
现在我怎么能创建方法来选择这样的类型:Db.Persons.OfType<Doctor>().ToList();
在我的reposytory中?
public class Repository<T> : IRepository<T> where T : class
{
private ClinicDbContext _Db;
private DbSet<T> DbSet;
public IEnumerable<T> GetAll()
{
throw new NotImplementedException();// What i should to write here?
}
}
实际上你对使用它们的看法是什么?我没有找到任何关于它的例子......可能吗?
更新:我找到了答案。它就像这样:
public class Repository<T> : IRepository<T> where T : class
{
private ClinicDbContext _Db;
private DbSet<T> DbSet;
public IEnumerable<T> GetAll()
{
return DbSet.OfType<T>().ToList();
}
}
但暂不知道:
public t GetById(object Id)
{
return DbSet.OfType<T>().Find(Id)??????//Find is not working here
}