0

EF 経由でデータベースを作成しましたが、(LINQ を使用して) オプションのリスト (フラグと呼ばれる) にリンクされているリスト (ポストと呼ばれる) を返したいと考えています。

以下の例では、テーブル Post にフラグの仮想リストを与えていることがわかります (これはオプションの権利を意味しますか?)

モデル :

public class Post
{
    public int PostID { get; set; }
    public string Title { get; set; }
    public DateTime? Dateapproved { get; set; }
    public virtual List<Flag> Flags { get; set; }
}

public class Flag
{
    public int FlagID { get; set; }
    public int PostID { get; set; }
}

EF :

public class sampleProject : DbContext
{
    public DbSet<Post> Posts { get; set; }
    public DbSet<Flag> Flags { get; set; }
}

フラグへのリンクがあり、Dateapproved が null でない投稿のリストを取得するにはどうすればよいですか?

もちろん、宣言は Post を想定しており、代わりにフラグのリストを取得しているため、これは機能しません。

List<Post> postlist = context.Flags.Where(x => x.Post.DateApproved != null).ToList();

「インクルード」機能は知っていますが、ここで機能するかどうかはわかりません

ここでのベストプラクティスは何ですか? どういうわけかそれをさらに多くのステップに分割する必要がありますか?

4

2 に答える 2

2

フラグへのリンクがあり、Dateapproved が null でない投稿のリストを取得するにはどうすればよいですか?

これを試して:

var posts = db.Posts.Include("Flags").Where(x => x.Flags.Any() && x.Dateapproved != null).ToList();
于 2012-11-23T13:11:44.507 に答える
0

使用する

  var result = from p in Posts
               join f in Flags on p.PostId equals f.PostId
               where f.Post.DateApproved != null
               select p;
于 2012-11-23T13:01:35.057 に答える