簡體   English   中英

使用Linq C#Asp.net顯示來自不同表的數據

[英]Showing data from different tables with Linq C# Asp.net

如何使用linq和C#顯示來自不同表的數據? 我的項目是一個社交網絡,用戶應在其中看到所有公開帖子以及發布該帖子的用戶的姓名和圖像

現在我有這個:

 var posts_public = from p in db.Posts
                       join e in db.Privacy on p.id_post equals e.id_post
                       join pu in db.Publish on p.id_post equals pu.id_post
                       join u in db.Users on pu.id_utilizador equals u.id_user
                       where e.id_privacy== 1
                       select new { p.text, u.name,u.image };
Viewbag.post = posts_public;

但是,當我想顯示選擇的數據時,會像這樣顯示:

{ text = ola2, nome = André, image = /Content/Images\IMG_20150616_183508.jpg }

我希望僅顯示如下數據:

ola2 
André
IMG_20150616_183508.jpg

有人能幫我嗎 ?

提前致謝 :)

您可以創建一個結果類並重載ToString()方法(如果要在整個地方執行此操作)。

類:

public class PublicResult
{
    public string Text { get; set; }
    public string Name { get; set; }
    public string ImagePath { get; set;}

    public override string ToString()
    {
        //return string.Format("{0}\n{1}\n{2}", Text, Name, ImagePath); <-- uncomment and delete other return if not using C# 6
        return $"{Text}\n{Name}\n{ImagePath}";
    }
}

然后在您選擇的查詢中執行以下操作:

var posts_public = from p in db.Posts
                   join e in db.Privacy on p.id_post equals e.id_post
                   join pu in db.Publish on p.id_post equals pu.id_post
                   join u in db.Users on pu.id_utilizador equals u.id_user
                   where e.id_privacy== 1
                   select new PublicResult{ Text = p.text, Name = u.name, ImagePath = u.image };

現在您在Console.WriteLine(posts_public)任何地方都將顯示為:

ola2 
André
IMG_20150616_183508.jpg

或者,如果您只是在單個位置執行此操作,請執行我在ToString()方法中所做的操作,在該方法中您將輸出此結果而不創建類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM