我試圖在asp core
中實現repository pattern。一切似乎都很好地工作與一些調整,除了將它添加到控制器:在上下文中沒有提供參數
public class HomeController : Controller
{
private IDocumentRepository _context;
public HomeController()
{
_context = new DocumentRepository(new myContext());
}
}
DocumentRepository.cs
public class DocumentRepository : IDocumentRepository, IDisposable
{
private myContext context;
public DocumentRepository(myContext context) : base()
{
this.context = context;
}
public IEnumerable<Document> GetDocuments()
{
return context.Document.ToList();
}
public Document GetDocumentByID(int id)
{
return context.Document.FirstOrDefault(x => x.Id == id);
}
IDocumentRepository.cs
public interface IDocumentRepository : IDisposable
{
IEnumerable<Document> GetDocuments();
Document GetDocumentByID(int documentId);
void InsertDocument(Document student);
void DeleteDocument(int documentID);
void UpdateDocument(Document document);
void Save();
}
的錯誤
沒有給定參數對應的 「myContext.myContext(DbContextOptions)所要求的正式 參數 '選項' dotnetcore..NETCoreApp,版本= V1.0
什麼線路上的錯誤(在錯誤報告時,總是把錯誤的確切位置),什麼是'mycontext'的代碼?它看起來像'mycontext'要求你傳遞一個'DBContextOptions'類型的對象給你不是的構造函數,但它很難從你提供的代碼中確定... – Chris
'myContext'需要一個options參數構造函數說,你應該讓框架爲你擔心,ASP.Net Core很大程度上依賴於依賴注入,你也應該如此。 – DavidG
另外值得一提的是,Entity Framework並不需要存儲庫模式,[本答案](http://programmers.stackexchange.com/a/220126/145181)有一個很好的解釋。 – DavidG