设置
好的,所以我有一个遵循 Onion 架构方法的应用程序,即:
前端参考 > 服务和域
服务参考 > 领域和数据
数据参考 > 域
领域参考 > 没有
我使用的是最新版本的 EF,我也使用 Unity 作为我的 IOC。
问题
我的应用程序的服务层通过接口访问数据层中的 DataContext。
public class TestService : ITestService
{
private readonly IDataContext _context;
public TestService(IDataContext context)
{
_context = context;
}
public BaseResponse SomeServiceCall(BaseRequest request)
{
_context.Database.ExecuteSqlCommand("SELECT * FROM test");
}
}
public class DataContext : DbContext, IDataContext
{
public DataContext() :
base("DefaultConnection")
{
Database.SetInitializer<DataContext>(null);
}
public DataContext(string connection) :
base(connection)
{
Database.SetInitializer<DataContext>(null);
}
public Database Database { get; set; }
Public IDBContext<Test> Tests {get;set;}
}
public interface IDataContext
{
Database Database { get; set; }
IDBContext<Test> Tests {get;set;}
}
我必须公开 Database 对象才能访问 ExecuteSQL 方法。但是现在当我在我的服务中运行它时,数据库对象返回一个空引用异常,我不知道如何初始化它。任何帮助将不胜感激!
乔什