0

私が使用しているプロジェクトは、標準の「Silverlight ビジネス アプリケーション」に基づいています。

正常に表示できるテーブルがいくつかありますが、他のテーブルからの SQL 結合に基づいて複合テーブルを表示しようとしています。したがって、私の Model.Designer.cs には小さなダミー クラスがあります。

        public class JoinClass
    {
        [Key]
        public string LanguagesName { get; set; }
        public string VersionsName { get; set; }
        public string StringsName { get; set; }
        public string TranslatedStringsValue { get; set; }
    }

次に、DomainService.cs でクエリを作成します。

        public IQueryable<JoinClass> GetJoinClass()
    {
        IQueryable<JoinClass> query = from o in this.ObjectContext.TranslatedStrings
                                                                    where o.LanguagesID == 10
                                                                    select new JoinClass { LanguagesName = o.Languages.LanguagesName, VersionsName = o.Strings.Versions.VersionsName, StringsName = o.Strings.StringsName, TranslatedStringsValue = o.TranslatedStringsValue };

        return query;
    }

Silverlight アプリでは、DomainDataSource を介してこれらすべてにアクセスします。

            <riaControls:DomainDataSource Name="joinClass" LoadSize="20" QueryName="GetJoinClass" AutoLoad="True">
            <riaControls:DomainDataSource.DomainContext>
                <ds:LanguageModelDomainContext />
            </riaControls:DomainDataSource.DomainContext>
            <riaControls:DomainDataSource.SortDescriptors>
                <riaControls:SortDescriptor PropertyPath="LanguagesName"></riaControls:SortDescriptor>
            </riaControls:DomainDataSource.SortDescriptors>
        </riaControls:DomainDataSource>

結果を DataGrid に表示します。

<sdk:DataGrid IsReadOnly="True" Name="translatedStringsDataGrid" ItemsSource="{Binding Data, ElementName=joinClass}"> 

ロケット科学は何もありません-問題は、DataGridに表示するレコードを1つしか取得できないことです。クエリ GetJoinClass() は問題なく実行され、600 近くのレコードが返されるように見えますが、DataGrid に表示されるのは 1 つだけです。私が使用する他のすべての標準クエリには、この問題はありません。

感謝して受け取ったポインタ!

4

1 に答える 1

0

答え -

[Key]。_ クラスのすべてのプロパティには、[Key]1つだけでなく、属性が必要です。

        public class JoinClass
    {
        [Key]
        public string LanguagesName { get; set; }
        [Key]
        public string VersionsName { get; set; }
        [Key]
        public string StringsName { get; set; }
        [Key]
        public string TranslatedStringsValue { get; set; }
    }

どうしてか分かりません。

于 2012-06-07T14:45:25.030 に答える