我有以下内容:
public partial class Subject
{
public Subject()
{
this.Contents = new List<Content>();
}
public int SubjectId { get; set; }
public string Name { get; set; }
public virtual ICollection<Content> Contents { get; set; }
}
public partial class Content
{
public int ContentId { get; set; }
public int ContentTypeId { get; set; }
public string Title { get; set; }
public string Text { get; set; }
public int SubjectId { get; set; }
public virtual Subject Subject { get; set; }
}
在我的 SQL Server 数据库中,我在 SubectId 和 ContentTypeId 的 Content 表上有一个索引
我的类正在使用具有诸如 GetAll() 和 GetId(id) 等方法的标准存储库查找,但是使用存储库模型有一种方法可以进行更复杂的查询。在这种情况下,我想以某种方式查询特定的 SujectId 和 contentTypeId。我要避免的是获取每个内容记录然后过滤掉我需要的查询。我想通过某种方式向 SQL Server 发送我需要的真正查询。
目前我的通用存储库具有以下内容:
public virtual T GetById(int id)
{
return DbSet.Find(id);
}
我可以通过实现创建 ContentRepository 并具有以下内容来做我需要的事情:
public IQuerable<Content> GetAllBySubjectId(int id)
{
return DbSet.Where(c => c.SubjectId == id);
}
如果是这样,那么我如何使用 GetAllBySubjectId 并添加检查 where ContentId == "01" 例如?