我在asp.net mvc 5中做一个学校项目。这个项目是关于创建一个社交网络。用户登录后,他将在其新闻提要上看到所有公共帖子。
不过,我在显示数据库中公共帖子的数据时遇到了问题。
这是数据库的脚本:

create table Utilizador(
    id_utilizador       integer     not null    identity(1,1),
    nome                varchar(50) not null,
    apelido             varchar(50) not null,
    username            varchar(15) not null    unique,
    pass                varchar(50) not null,
    email               varchar(50) not null    unique,
    sexo                char(1)     not null CHECK (sexo IN('M', 'F')),
    país                varchar(50) not null,
    imagem_perfil       varchar(50) not null,
    data_nascimento     date        not null,
    estado              int         not null default 2, --0->Bloqueado 1-Activo, 2-por activar
    primary key (id_utilizador),
    check (email LIKE '%@%.%')
    )

    create table Post(
    id_post         integer         not null identity(1,1),
    texto           varchar(400)    not null,
    primary key(id_post)
    )

    create table Publish_Post(
    id_post         integer         not null,
    id_utilizador   integer         not null,
    data            timestamp       not null,
    primary key(id_post),
    foreign key(id_post) references Post(id_post),
    foreign key(id_utilizador) references Utilizador(id_utilizador)
    )

    create table Privacy(
    id_privacidade  integer     not null identity(1,1), --> 1 public, 2 private
    nome            varchar(50) not null,
    primary key(id_privacidade)
    )

    create table Have_Privacy(
    id_post         integer     not null,
    id_privacidade  integer     not null,
    primary key(id_post),
    foreign key(id_post) references Post(id_post),
    foreign key(id_privacidade) references Privacidade(id_privacidade)
    )

让我解释一下为什么我要以这样的方式创建数据库:
用户创建并发布一些具有隐私值(1或2)的帖子。用户登录后,所有公共帖子(1)都应出现在其新闻源上。
到目前为止,我在c_中有这个linq查询:
var id_posts = from p in db.Posts
                           select p.texto;

            ViewBag.Posts = id_posts;

有人能帮我吗?
提前谢谢:)

最佳答案

就这么做

var id_posts = from p in db.Posts
           join hp in db.Have_Privacy on p.id_post equals hp.id_post
           join prv in db.Privacy on hp.id_privacidade equals prv.id_privacidade
           where prv.nome = 'Private'
           select p.texto;

告诉我事情的经过

关于c# - ASP.NET MVC 5-从数据库选择数据的LINQ查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33978629/

10-15 03:23
查看更多