엔티티 프레임 워크가있는 Databinding ASP.NET DropdownList
-
03-07-2019 - |
문제
ASP.NET DropdownList를 엔티티 프레임 워크 쿼리의 결과에 바인딩하면서도 멀티 계층 분리를 유지하려고합니다. (예 : UI 코드가 쿼리 세부 사항을 포함하거나 데이터 계층 코드가 UI 종속성을 갖기를 원하지 않습니다.) Page_Load 이벤트 핸들러의 코드-비인드는 다음과 같습니다.
IEnumerable<Lookup> TypesLookup = Business.DocumentBO.GetDocumentTypes(_LookupTypeID);
DocTypeDropDownList.DataSource = TypesLookup;
DocTypeDropDownList.DataTextField = "Description";
DocTypeDropDownList.DataValueField = "LookupID";
DocTypeDropDownList.DataBind();
내 데이터 코드는 이와 같이 보이지만 (중간 비즈니스 계층도 있지만 아직 프로세스가 없습니다. 단지 패스 스루입니다.) :
public static IEnumerable<Lookup> GetLookups(int LookupTypeID)
{
using (VLFDocumentEntities context = new VLFDocumentEntities())
{
IEnumerable<Lookup> l = (from c in context.Lookup
where c.LookupTypeID == LookupTypeID
select c);
return l;
}
}
doctypedRopdownList.databind ()에 도달하면 "doctypedRopdownList.databind ();"메시지와 함께 ObjectDispossionException을 던집니다. 누구든지 이것을 다루는 가장 좋은 방법을 조언 할 수 있습니까?
고마워요, 앤디
해결책
상황에서 물체를 분리 할 필요가 없습니까? 예 :
IEnumerable<Lookup> l = (from c in context.Lookup
where c.LookupTypeID == LookupTypeID
select c);
foreach (Lookup lookup in l)
context.Detach(lookup);
return l;
다른 팁
목록 <>를 사용하지 않는 이유는 무엇입니까?
public static List<Lookup> GetLookups(int LookupTypeID)
{
using (VLFDocumentEntities context = new VLFDocumentEntities())
{
return (from c in context.Lookup
where c.LookupTypeID == LookupTypeID
select c).ToList();
}
}
제휴하지 않습니다 StackOverflow