我有以下的庫:如何查看由LINQ發送到我的數據庫的SQL文本?
public class GenericRepository<T> : IRepository<T> where T : class
{
public GenericRepository(DbContext dbContext)
{
if (dbContext == null)
throw new ArgumentNullException("An instance of DbContext is required to use this repository", "context");
DbContext = dbContext;
DbSet = DbContext.Set<T>();
}
protected DbContext DbContext { get; set; }
protected DbSet<T> DbSet { get; set; }
public virtual IQueryable<T> Find(Expression<Func<T, bool>> predicate)
{
return DbSet.Where<T>(predicate);
}
public virtual IQueryable<T> GetAll()
{
return DbSet;
}
和服務:
private IRepository<Subject> _subjectsRepository;
private IRepository<Content> _contentsRepository;
public ContentService(IRepositoryProvider repositoryProvider)
: base(repositoryProvider)
{
_subjectsRepository = GetStandardRepo<Subject>();
_contentsRepository = GetStandardRepo<Content>();
}
public IList<Content> GetContents(int subjectId, int contentTypeId, int contentStatusId)
{
var contents = _contentsRepository.GetAll()
.Where(a => a.SubjectId == subjectId &&
a.ContentTypeId == contentTypeId &&
(contentStatusId == 99 ||
a.ContentStatusId == contentStatusId))
.ToList();
return contents;
}
我想找到被髮送到數據庫的SQL文本。我知道我可以做到這一點:
db.GetCommand(query).CommandText
但可能有人幫助我,告訴我,我應該把這個在我的代碼。
我想找到被髮送到數據庫的SQL文本,我知道,我可以
最簡單的事情是使用sql profiler –