2013-03-14 142 views
1

這是我的表實體框架表的主鍵

消息 enter image description here

enter image description here

這是我的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> 

這是結果 enter image description here

你們能幫我顯示發件人的名字嗎? :)提前謝謝你們!我使用的數據源的實體

UPDATE

我作爲用戶登錄卡羅

enter image description here

發件人顯示登錄的用戶沒有真正的發件人在郵件表

用戶

這是我的實體模型

enter image description here

+0

如何顯示收件人姓名?發件人名稱也應該如此。 – 2013-03-14 08:42:51

+0

等待我將其上傳使其更清晰 – 2013-03-14 08:47:08

+0

我更新問題 – 2013-03-14 08:51:22

回答

1

你已經得到了你需要的導航性能,但他們的名字掩蓋自己的作用。您使用Message.Person來獲取發件人的姓名,同樣,您可以使用Message.Person1來獲取收件人的姓名。

我會將屬性PersonPerson1分別重命名爲SenderRecipient。因此,它們匹配原始外鍵名稱SenderIDRecipientID。同樣,您可以將Person.Messages屬性重命名爲MessagesSentMessagesReceived

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

+0

我會試試這個等待 – 2013-03-14 09:49:07

+0

非常感謝你@GertArnold!有用! – 2013-03-14 09:53:49

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 
+0

我應該把這個查詢放在哪裏? – 2013-03-14 08:45:40

+0

這是從數據庫檢索數據的選擇查詢。你如何查詢?它是由LINQ ot存儲過程的實體FW。如果SP可以使用上面的查詢 – 2013-03-14 08:47:01

+0

我更新了問題 – 2013-03-14 08:51:55