1

这是我的桌子

信息 在此处输入图像描述

在此处输入图像描述

这是我的 Gridview 源

<asp:TemplateField ShowHeader="False">
            <ItemTemplate>
                <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" 
                    CommandName="Select" Text="Select"></asp:LinkButton>
                <asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" 
                    CommandName="Delete" Text="Delete"></asp:LinkButton>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="RecipientID" SortExpression="Person.LastName">
            <ItemTemplate>
                <asp:Label ID="Label1" runat="server" Text='<%# Bind("Person.LastName") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField DataField="Subject" HeaderText="Subject" 
            SortExpression="Subject" />
        <asp:BoundField DataField="Message1" HeaderText="Message" 
            SortExpression="Message1" />
        <asp:BoundField DataField="Status" HeaderText="Status" 
            SortExpression="Status" />
        <asp:BoundField DataField="Date" HeaderText="Date" SortExpression="Date" />
        <asp:TemplateField HeaderText="SenderID" SortExpression="Person.LastName">
            <ItemTemplate>
                <asp:Label ID="Label2" runat="server" Text='<%# Bind("Person.LastName") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>

这是结果 在此处输入图像描述

你们能帮我显示发件人的名字吗?:) 提前谢谢你们!我正在使用实体数据源

更新

我以用户 Carlo 的身份登录

在此处输入图像描述

发件人在消息表中显示登录的用户而不是真正的发件人

这是我的实体模型

在此处输入图像描述

4

2 回答 2

1

您已经获得了所需的导航属性,但它们的名称隐藏了它们的作用。你Message.Person用来获取发件人的姓名,同样你可以用用户Message.Person1来获取收件人的姓名。

我会分别将属性Person和重命名Person1SenderRecipient。因此,它们匹配原始外键名称SenderIDRecipientID. 同样,您可以将Person.Messages属性重命名为MessagesSentand MessagesReceived

在模板中,您可以使用Sender.LastNameRecipient.LastName

于 2013-03-14T09:37:40.967 回答
0

使用此查询

select m.MessageID,m.ReceipientID,m.Subject,m.senderID,p.UserName,p.FirseName from Message m inner join Person p on m.SenderID= p.ID
于 2013-03-14T08:44:11.150 回答