Я пытаюсь использовать LINQ для привязки данных в моем GridView.
В моем файле Service.cs у меня есть метод для извлечения записей для определенного вошедшего в систему пользователя:
public List<tidsregistrering> ShowTidregistreringer()
{
var CurrentMedarbejder = FindUser(HttpContext.Current.Session["email"].ToString());
var tempList = (from t in kdc.tidsregistrerings
join p in kdc.projekts on t.projektid equals p.id
join k in kdc.kundes on t.kundeid equals k.id
join o in kdc.øvriges on t.øvrigeid equals o.id
where t.medarbejderid == CurrentMedarbejder.id
select t).ToList();
return tempList;
}
Где KDC мой DataContext . Я попытался соединить разные таблицы вместе, но в моем GridView данные не отображаются. Если я пропускаю объединения, я получаю данные ... В других моих таблицах у меня есть столбец с именем navn
(имя). Я хочу, чтобы это имя печаталось в моем GridView вместо ссылки на внешний ключ ...
Мой GridView:
<asp:GridView ID="GridView1" runat="server">
<Columns>
<asp:BoundField DataField="tidsforbrug" HeaderText="Tidsforbrug" />
<asp:BoundField DataField="dato" HeaderText="Dato" />
<asp:BoundField DataField="<%# Bind("projekt.id") %>" HeaderText="Projekt" />
<asp:BoundField DataField="<%# Bind("kunde.id") %>" HeaderText="Kunde" />
<asp:BoundField DataField="<%# Bind("øvrige.id") %>" HeaderText="Øvrigt" />
<asp:BoundField DataField="done" HeaderText="Done" />
</Columns>
</asp:GridView
Моя привязка происходит при загрузке страницы:
GridView1.DataSource = service.ShowTidregistreringer();
GridView1.DataBind();
Как мне это сделать?
Edit:
И для большей степени это мой список на данный момент ... И я хочу, чтобы эти числа в projektid, kundeid и øvrigeid были объединены с моими таблицами внешних ключей.
* Edit2: **
Для еще большей оценки, как создаются таблицы моей базы данных:
CREATE TABLE chef(
id int identity primary key,
email varchar(100) unique not null,
password char(100) not null,
navn varchar(100) not null
);
CREATE TABLE medarbejder(
id int identity primary key,
email varchar(100) unique not null,
password char(100) not null,
navn varchar(100) not null,
chefid int foreign key references chef(id)
);
CREATE TABLE projekt(
id int identity primary key,
navn varchar(50) not null,
beskrivelse varchar(255) not null
);
CREATE TABLE kunde(
id int identity primary key,
navn varchar(50) not null,
beskrivelse varchar(255) not null
);
CREATE TABLE øvrige(
id int identity primary key,
navn varchar(50) not null,
);
CREATE TABLE tidsregistrering(
id int identity primary key,
tidsforbrug float,
dato datetime,
projektid int foreign key references projekt(id),
kundeid int foreign key references kunde(id),
øvrigeid int foreign key references øvrige(id),
medarbejderid int foreign key references medarbejder(id) not null,
done bit
);
Edit3:
Я переделал свой LINQ-запрос к этому:
List<tidsregistrering> tempList = (from t in kdc.tidsregistrerings
join p in kdc.projekts on t.projektid equals p.id into p_t
join k in kdc.kundes on t.kundeid equals k.id into k_t
join o in kdc.øvriges on t.øvrigeid equals o.id into o_t
from k in k_t.DefaultIfEmpty()
from p in p_t.DefaultIfEmpty()
from o in o_t.DefaultIfEmpty()
where t.medarbejderid == CurrentMedarbejder.id
select t).ToList();
Но он по-прежнему не выбирает, что присоединилось ...