c# - لينكداتاسورس-هل يمكنك الحد من كمية السجلات التي تم إرجاعها؟




asp.net database (4)

كان لي هذه المسألة نفسها. الطريقة التي حصلت على جولة هذا كان لاستخدام الحدث اختيار على لينداتاسورس وإرجاع النتيجة يدويا.

على سبيل المثال

protected void lnqRecentOrder_Selecting(object sender, LinqDataSourceSelectEventArgs e)
{
    DataClassesDataContext dx = new DataClassesDataContext();
    e.Result = (from o in dx.Orders
                where o.CustomerID == Int32.Parse(Request.QueryString["CustomerID"])
                select o).Take(5);
}

أريد استخدام عنصر تحكم LinqDataSource على الصفحة والحد من كمية السجلات التي تم إرجاعها. وأنا أعلم إذا كنت تستخدم رمز وراء أنا يمكن أن تفعل شيئا من هذا القبيل:

IEnumerable<int> values = Enumerable.Range(0, 10);
IEnumerable<int> take3 = values.Take(3);

هل يعرف أحد ما إذا كان شيء من هذا القبيل ممكن مع عنصر تحكم LinqDataSource ؟

[تحديث]

أنا ذاهب إلى استخدام LinqDataSource مع ListView التحكم ListView ، وليس غريدفيو أو مكرر. لا يوفر المعالج LinqDataSource القدرة على الحد من عدد السجلات العودة. تسمح لك الخيارات المتقدمة فقط بتمكين عمليات الحذف والإدراج والتحديثات.


يمكنك قاعدة الاستعلام لينك الخاص بك على بروك المخزنة التي ترجع فقط x عدد الصفوف باستخدام عبارة توب. تذكر فقط لأنك يمكن أن تفعل كل ما تبذلونه من رمز دب في لينق لا يعني أنك يجب. بالإضافة إلى ذلك، يمكنك أن تقول لينق لاستخدام نفس نوع العائد ل بروك المخزنة كما الجدول العادي، لذلك كل ما تبذلونه من ملزمة لا تزال تعمل، وسوف تكون النتائج عودة نفس النوع


وأنا أعلم أنه إذا كنت تستخدم مكرر الترحيل أو غريدفيو مع لينكداتاسورس فإنه سيتم تلقائيا تحسين عدد من النتائج التي تم إرجاعها، ولكن أنا أيضا متأكد من ذلك في معالج مصدر البيانات يمكنك الذهاب إلى خيارات متقدمة والحد من ذلك إلى

SELECT TOP 3 FROM 

والتي ينبغي أن تسمح لك أن تفعل ما تحتاجه


يمكنك وضع الحدث اختيار ليندداتاسورس:

protected void ldsLastEntries_Selecting(object sender, LinqDataSourceSelectEventArgs e)
{
    e.Arguments.MaximumRows = 10;
}




linq-to-sql