1
ASP.NET MVC 3 응용 프로그램이 있고 프로젝트에 ADO.NET 엔터티 데이터 모델을 사용하고 있습니다.ADO.NET이 데이터베이스에 제대로 연결되지 않았습니다. (여러 오류)
내가 중간 클래스 (DataManager에)를 사용하여 데이터에 대한 액세스를 들어: 나는 이상이
public IQueryable<OptionStorage> List()
{
return _dataContext.OptionStorage;
}
이러한 클래스 : OptionStorageRepository 클래스에서
public class DataManager
{
private static mrhomeEntities _dataContext;
public DataManager()
{
_dataContext = new mrhomeEntities();
}
private OptionStorageRepository _optionStorageRepository;
public OptionStorageRepository OptionStorage
{
get { return _optionStorageRepository ?? (_optionStorageRepository = new OptionStorageRepository(_dataContext)); }
}
}
을 나는 옵션의 목록을 반환 한 방법이 15 (이 구조로) 데이터베이스의 데이터를 가져오고 편집 할 수 있습니다.
아직도 내가 DataManager에 클래스의 새 개체를 전달 내 ControllerFabrick을 가지고 :
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
ControllerBuilder.Current.SetControllerFactory(new ControllerFabricFactory());
}
그리고 모두 : 또한이 같은 Global.asax에 내 컨트롤러를 fabrick 등록
public class ControllerFabricFactory : DefaultControllerFactory
{
protected override IController GetControllerInstance(System.Web.Routing.RequestContext requestContext, Type controllerType)
{
return Activator.CreateInstance(controllerType, new DataManager()) as IController;
}
}
컨트롤러 나는이 매개 변수를 생성자에서 받아 내 동작 메서드에서 사용합니다.
public class HomeController : Controller
{
private readonly DataManager dm;
public HomeController(DataManager dm)
{
this.dm = dm;
}
[HttpGet]
public ActionResult Main()
{
Page page = dm.Page.Details(mainPageName);
PageNews pageNews = new PageNews();
pageNews.page = page;
pageNews.NewsList = dm.News.List(5);
pageNews.PopularProject = dm.Project.GetPopularProject();
if (pageNews.PopularProject != null)
{
var list = pageNews.PopularProject.ProjectPictures.Where(p => p.ProjectPictureTypes.Id == 1).ToList();
if (list.Count > 0)
{
ViewData["img"] = list[0].ThumbPath;
}
}
foreach (var item in dm.Page.List())
{
ViewData[item.Name] = item.ShortPageText;
}
ViewData["projects"] = dm.Project.GetMainPageProjects();
ViewData["MainText"] = dm.Page.Details("maintext").PageText;
return View(pageNews);
}
}
그리고 내 질문 :
- 연결했다 :
I는 웹 브라우저에서 내 응용 프로그램을 테스트 나는 이상한 오류가있는, 즉 데이터베이스 또는 데이터를 검색하는 연결에 대한 정보를 포함
, 내가 아래에있는 내 오류의 컬렉션이 닫히지 않았습니다. 연결의 현재 상태는 입니다. - 데이터가 없을 때 올바르지 않은 시도가 있습니다.
- ExecuteReader에는 열려 있고 사용 가능한 연결이 필요합니다. 연결의 현재 상태가 열려 있습니다.
- 세션에 다른 스레드 이 실행 중이므로 새 트랜잭션이 허용되지 않습니다.
- 같은 키를 가진 항목이 이미 추가되었습니다.
아마도 데이터를 가져 오기 위해 잘못된 구조를 사용했을까요?
안녕 @IICuX 객체 - 당신은 기회가있을 때, 당신은 궁극적으로 받아 들일 수있는 답변으로 해상도를 게시하시기 바랍니다 - 이것은 다른 사람들이 그 문제를 해결책을 가진 것으로 인식하도록 돕습니다. –