ربط البيانات ASP.net دروبدوونليست مع الكيان الإطار
-
03-07-2019 - |
سؤال
وأنا أحاول ربط لASP.net دروبدوونليست لنتائج استعلام إطار كيان، في حين لا يزال الحفاظ على الفصل متعدد المستويات. (. أي أنا لا أريد كود 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 () ؛، أنه يطرح ObjectDisposedException مع الرسالة "DocTypeDropDownList.DataBind ()؛". يمكن لأي شخص أن ينصحني حول أفضل طريقة لمعالجة هذا؟
وشكرا، أندي
المحلول
ولا يكون لديك لفصل الأشياء عن السياق؟ منها مثلا:
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