私はこのような複数の投票と一見単純なポストのテーブルを持っている:のIQueryable二つのテーブル
ポスト:
namespace Api.Models
{
public class Post
{
public int id { get; set; }
public bool deleted { get; set; }
public virtual User creator { get; set; }
(...)
public virtual ICollection<Vote> votes { get; set; }
}
}
投票:
namespace Api.Models
{
public class Vote
{
public int id { get; set; }
public bool seen { get; set; } = false;
(...)
[JsonIgnore]
[IgnoreDataMember]
public virtual ICollection<Post> post { get; set; }
}
}
これは、生成しましたVote_idとPost_idを外部キーとしてSQLデータベース内のVotePostテーブル。
投稿が0票の場合、またはすべての票が表示されている場合は、p.creator.user_idで投稿に接続されている==偽を表示する投票を取得しようとしています。それから私は==ポスト要素
ポストが複数票のオブジェクトを持っていると私はすべてのvote.seenをフィルタリングする方法がわからない返すことを事前に偽
IQueryable<Post> postQuery = (from p in db.Posts where
p.deleted == false &&
p.creator.user_id == user_id &&
// all p.votes object seen == false ?
select p);
感謝する必要はありませんあなただけのAll()
LINQメソッドを使用することができます任意の助け
ありがとうございます。おそらくここではデータベースの設定に間違いがありました。投稿は複数の票を持つことができますが、投票は1つの投稿にのみ関連付ける必要があります。だから私は投票は本当にちょうどpost_idの外部キーを持っている必要がありますね..再びありがとう – ganjan