使用LinqC#Asp.net显示不同表中的数据

本文关键字:数据 LinqC#Asp net 显示 使用 | 更新日期: 2023-09-27 18:25:44

如何使用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

有人能帮我吗?

提前感谢:)

使用LinqC#Asp.net显示不同表中的数据

如果这是你要到处做的事情,你可以创建一个结果类并重载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()方法中所做的那样,输出这个结果,而不是创建类。