0

私は最近 C# と DotVVM を学び始めましたが、問題が発生しました。2 つのテーブルから linq クエリを作成する方法がわかりません。1 つのテーブルに対してクエリまたは linq を作成する方法は知っていますが、2 つのテーブルで行き詰まりました。

私の著者データベース

CREATE TABLE [dbo].[Autors] (
[ID]              INT            IDENTITY (1, 1) NOT NULL,
[Jmeno]           NVARCHAR (MAX) NULL,
[Prijmeni]        NVARCHAR (MAX) NULL,
[ProstredniJmeno] NVARCHAR (MAX) NULL,
[Narozeni]        DATE           DEFAULT (NULL) NULL,
[Umrti]           DATE           DEFAULT (NULL) NULL,
[Bio]             NVARCHAR (MAX) NULL,
[Narodnost]       NVARCHAR (MAX) NULL,
[Obrazek]         NVARCHAR (MAX) NULL,
CONSTRAINT [PK_dbo.Autors] PRIMARY KEY CLUSTERED ([ID] ASC));

書籍のデータベース

CREATE TABLE [dbo].[Books] (
[Id]         INT            IDENTITY (1, 1) NOT NULL,
[Nazev]      NVARCHAR (MAX) NOT NULL,
[IdAutor]    INT            NOT NULL,
[Popis]      NVARCHAR (MAX) NULL,
[Isbn]       NCHAR (15)     NULL,
[IdZanr]     INT            NULL,
[RokVydani]  INT            NULL,
[PocetStran] INT            NULL,
[Obrazek]    TINYINT        NULL,
CONSTRAINT [PK_dbo.Books] PRIMARY KEY CLUSTERED ([Id] ASC));

そして、これを取得するにはlinqクエリを作成する必要があります

namespace AbsolvetnskaPrace.Models
{
   public class AutorListModel
    {
        public int Id { get; set; }
        public string Jmeno { get; set; }       //First name
        public string Prijmeni { get; set; }    //Last name
    }
}


namespace AbsolvetnskaPrace.Models
{
    public class BookListModel
    {
        public int Id { get; set; }
        public string Nazev { get; set; }            //Title
        public int IdAutor { get; set; }
        public string JmenoAutor { get; set; }       //Author's first name
        public string PrijmeniAutor { get; set; }    //Author's last name
    }
}

私が使用するすべてのlinqクエリがあるサービスのクラスがあります。私が必要とするのは、本のリストを作成することですが、著者の名前と姓を取得することです。

これはリストのビューです:

<div class="page-center">
        <div class="page-grid-top">
            <div class="student-image"></div>
            <h1>{{resource: Texts.Title_BookList}}</h1>
            <dot:AuthenticatedView>
                <dot:RouteLink Text="{resource: Texts.Label_NewBook}" RouteName="CRUD_BookCreate" class="page-button btn-add btn-long" />
            </dot:AuthenticatedView>
        </div>
        <dot:GridView DataSource="{value: Books}" class="page-grid">
            <Columns>
                <dot:GridViewTextColumn ValueBinding="{value: Nazev}" HeaderText="{resource: Texts.Label_Title}" />

                <dot:GridViewTextColumn ValueBinding="{value: IdAutor}" HeaderText="{resource: Texts.Label_BookAutor}" />

                <dot:GridViewTemplateColumn>
                    <dot:RouteLink Text="{resource: Texts.Label_Detail}" RouteName="CRUD_BookDetail" Param-Id="{{value: Id}}" />
                </dot:GridViewTemplateColumn>
                <dot:GridViewTemplateColumn>
                    <dot:RouteLink Text="{resource: Texts.Label_Edit}" RouteName="CRUD_BookEdit" Param-Id="{{value: Id}}" />
                </dot:GridViewTemplateColumn>
            </Columns>

            <EmptyDataTemplate>
                {{resource: Texts.EmptyAutorTable}}
            </EmptyDataTemplate>
        </dot:GridView>
    </div> 

最終的に結果は次のようになりますが、"Jméno a příjmení autora" の数字は Autor の姓名で表示されます。現在、 は Author's Id です。

この質問は非常に長いことは承知していますが、アドバイスをいただければ幸いです。

4

1 に答える 1