سؤال

ولدي التطبيق سيلفرلايت 3 مع خدمات ريا وأنا على التوالي في مشكلة حيث بلدي DataPager هو تحميل البيانات الوحيدة لloadsize الأولي ومن ثم لم يعد إعادة شحن. فإنه إحضار صفحتين من البيانات (حجم الصفحة = 10، LoadSize = 20). ويظهر 119 صفحة من البيانات بشكل صحيح ولكن عندما انتقل إلى الصفحة 3، لا شيء يبدو في بلدي datagrid وdataforms.

وهذا هو بلدي مصدر البيانات المجال:

<riaControls:DomainDataSource x:Name="_dds" QueryName="GetCaseLoads" AutoLoad="True" PageSize="10" LoadSize="20">
    <riaControls:DomainDataSource.DomainContext>
        <domain:FooContext />
    </riaControls:DomainDataSource.DomainContext>
</riaControls:DomainDataSource>

وهنا المتكررة لDataPager:

<data:DataPager Source="{Binding Data, ElementName=_dds}" />

وهنا الاستعلام خدمة المجال:

[RequiresAuthentication()]
public IQueryable<CaseLoad> GetCaseLoads()
{
    // Return all case loads
    return this.Context.CaseLoadSet;
}

وانها واضحة جدا لذلك أنا لست متأكدا ما هو مفقود. سيكون موضع تقدير أي مساعدة؛

هل كانت مفيدة؟

المحلول

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

والإصلاح بسيط هو أن تأمر بجمع إعادته من GetCaseLoads (). أنا فعلت هذا مثل هذا وعملت:

[RequiresAuthentication()]
public IQueryable<CaseLoad> GetCaseLoads()
{
    // Return all case loads
    return this.Context.CaseLoadSet.OrderBy(caseLoad=>caseLoad.fkUserId);
}

والمدهش كيف حل الكثير من الوقت أخذت هذه المشكلة قليلا.

نصائح أخرى

وكان لي نفس المشكلة، أستطيع أن أرى من المثال المذكور في وثائق RIA نبذة عن الخدمات التي يستخدمونها LINQ إلى SQL بدلا من LINQ إلى EF - يجب أن يكون شيئا مع الفرق بينهما

وشكرا لنشر الحل، أنقذني ساعات طويلة من faffing:)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top