我正在使用ASP.NET,C#,MVC 5和Entity Framework开展项目。我已经实现了通用的DBContext和Generic存储库,并使用UnitOfWorks来实现独立的业务功能,这一切都运行良好。我需要使用存储过程(已经与数据库一起保存)和定义行为,我正在努力与
USE [DORIS_DB_01]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[GetFunctionByID](
@FunctionId INT
)
AS
BEGIN
SELECT *
FROM Functions As Fun
WHERE Function_ID = @FunctionId
END
我的意图是在UnitOfWork中调用存储过程,如果这是正确的方法
public interface IGenericRepository<TEntity> : IDisposable where TEntity : class
{
IQueryable<TEntity> GetByIdAsync(int id);
IQueryable<TEntity> GetAll();
}
public class GenericRepository<TEntity> : IGenericRepository<TEntity> where TEntity : class
{
protected DbSet<TEntity> _DbSet;
private readonly DbContext _dbContext;
public GenericRepository()
{
}
public GenericRepository(DbContext dbContext)
{
this._dbContext = dbContext;
_DbSet = _dbContext.Set<TEntity>();
}
public IQueryable<TEntity> GetAll()
{
return _DbSet;
}
public IQueryable<TEntity> GetByIdAsync(int id)
{
var receive_ID = id;
return _DbSet;
}
public void Dispose()
{
}
}
其余代码可以在这里找到:
best practice to implement repository pattern and unitOfWork in ASP.NET MVC
答案 0 :(得分:0)
我不知道我是否理解你,但请查看http://www.codeproject.com/Questions/677043/Execute-Raw-sql-query-in-entity-framework
这篇文章展示了如何执行原始sql查询。现在在存储库中,您可以创建方法'ExecuteStoredProcedure'以将其公开给工作单元。