我在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/