我正在尝试使用MVC创建标记云。当我获得实现存储库接口的所有文档的Queryable集合时,我遇到了问题。
这是我的主要模特:
public int Id { get; set; }
public int CDAId { get; set; }
public string Date { get; set; }
public Clinics Clinic { get; set; }
public Patients Patient { get; set; }
public string Illness { get; set; }
public string HisPreIll { get; set; }
public string PasMedHis { get; set; }
public string Medications { get; set; }
public string Allergies { get; set; }
public string SocHis { get; set; }
public int PatientId { get; set; }
public int ClinicId { get; set; }
//Keywords
public string Keywords { get; set; }
存储库接口:
public interface IRepository<T> where T : class
{
IEnumerable<T> GetAll();
T GetById(object Id);
void Insert(T obj);
void Update(T obj);
void Delete(Object Id);
void Save();
}
和存储库类
public class Repository<T> : IRepository<T> where T : class
{
private DocContext _db;
private DbSet<T> _dbSet;
public Repository()
{
_db = new DocContext();
_dbSet = _db.Set<T>();
}
public IEnumerable<T> GetAll()
{
return _dbSet.ToList();
}
public T GetById(object Id)
{
return _dbSet.Find(Id);
}
public void Insert(T obj)
{
_dbSet.Add(obj);
}
public void Update(T obj)
{
_db.Entry(obj).State = EntityState.Modified;
}
public void Delete(object Id)
{
T getObjById = _dbSet.Find(Id);
_dbSet.Remove(getObjById);
}
public void Save()
{
_db.SaveChanges();
}
protected virtual void Dispose(bool disposing)
{
if (disposing)
{
if (this._db != null)
{
this._db.Dispose();
this._db = null;
}
}
}
}
然后我尝试在DocContext中获取所有CDAS
public class DocContext : DbContext, IRepository
{
public DocContext() : base("CDAEntities")
{
}
public DbSet<CDA> CDAS { get; set; }
public DbSet<Clinics> Clinics { get; set; }
public DbSet<Patients> Patients { get; set; }
**//Queryable collection of all docs that implement the repository interface**
IQueryable<CDA> IRepository.CDAS
{
get { return CDAS; }
}
}
问题出在 DocContext
如何正确获取文档集(我的模型CDA)而没有错误?
使用通用类型&#34; IRepository&#34;需要类型1的参数
&#39; IRepository&#34;在接口的显式声明中不是接口。