【发布时间】:2015-06-08 13:07:59
【问题描述】:
如果我有一个实体:
class Post
{
[ Key ]
public int PostID { get; set; }
public string Title { get; set; }
public string Body { get; set; }
public string Comment { get; set; }
public virtual Project Project { get; set; }
...
public bool LikedByUser; // Append this property
}
public class PostLike
{
public int PostLikeID { get; set; }
public virtual Post Post { get; set; }
}
有没有一种方法可以在调用数据库时进行连接,然后将最后一个属性(在代码中提到)附加为额外的......例如,这段代码很愚蠢(并且可能不起作用):
this.context.Posts
.Join(
this.context.PostLikes,
p => p.PostID,
pl => pl.Post.PostID,
// This is the bit that can't be right!
( p, pl ) => new Post()
{
PostID = p.PostID,
Title = p.Title,
Body = p.Body,
Comment = p.Comment
Project = p.Project,
LikedByUser = pl.Count > 0 ? true : false
}
);
我想要这样的东西:
this.context.Posts
.Join(
this.context.PostLikes,
p => p.PostID,
pl => pl.Post.PostID,
( p, pl ) => {
p.LikedByUser = pl.Count > 0 ? true : false;
}
);
【问题讨论】:
-
侧边栏:
pl.Count > 0 ? true : false可以缩短为pl.Count > 0。 -
1. LikedByUser 是 Post 类中不存在的属性吗? 2. IS 类 Post 部分?
-
1.如您所见,LikeByUser 是 Post 类中存在的一个属性。
标签: c# entity-framework join