Я недавно начал изучать C # и DotVVM, и я столкнулся с проблемой. Я не знаю, как сделать запрос linq из двух таблиц. Я знаю, как сделать запрос или linq для одной таблицы, но я застрял с двумя таблицами.
Моя база данных авторов
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" следуют по имени и фамилии Автора. Сейчас это Идентификатор автора.
Я знаю, что этот вопрос очень длинный, но я был бы благодарен за любой совет, который вы можете мне дать.