私はPhraseCategoryとPhraseの2つのオブジェクトを持っています。ここではクラスです:2つのクラスをリンクするには、Entity FrameworkとLINQを使用してリスト出力を選択します。
public class PhraseCategory
{
public System.Guid PhraseCategoryId { get; set; } // PhraseCategoryId
public int PhraseCategoryShortId { get; set; } // PhraseCategoryShortId (Primary key)
public int PhraseCategoryGroupId { get; set; } // PhraseCategoryGroupId
public string Name { get; set; } // Name (length: 20)
// Reverse navigation
public virtual System.Collections.Generic.ICollection<Phrase> Phrases { get; set; } // Phrase.FK_PhrasePhraseCategory
}
public class Phrase : AuditableTable
{
public System.Guid PhraseId { get; set; } // PhraseId (Primary key)
public string English { get; set; } // English
public int? CategoryId { get; set; } // CategoryId
// Foreign keys
public virtual PhraseCategory PhraseCategory { get; set; } // FK_PhrasePhraseCategory
}
誰かが、私は25
のPhraseCategoryGroupId例えば持つすべてのフレーズを選択することができていますように、私はこれらに参加することができる方法を教えてもらえますここでは、私が今持っているものだが、私はちょうどフラット出力(理にかなっている希望を)取得したいと思い
List<Phrase> phrases;
var query = db.Phrases.AsQueryable();
if (options.CreatedBy != 0) query = query
.Where(w => w.CreatedBy == options.CreatedBy);
phrases = await query
.AsNoTracking()
.ToListAsync();
return Ok(phrases);
注:アカウントにもPhraseCategoryGroupIdを持ってPhraseCategoryとフレーズを選択することができるように、私の必要性を取ることはありません。あなたはまた、代わりに別の型のインスタンスを作成することができますので、予めご了承ください
phrases = phrases.Where(x => x.PhraseCategory.PhraseCategoryGroupId == 25)
.Select(x => new
{
PhraseId = x.PhraseId,
English = x.English,
CategoryId = x.CategoryId
});
:これはあなたが必要なものを取得する必要があります
PhraseId、英語と区分
あなたはVARクエリのようなものを試してみました= db.Phrases.AsQueryable()(。XX => XX PhraseCategory).Where(YY => YYを含めるPhraseCategoryGroupId == 25。 ) –