多くの人から多くの人がエンティティフレームワークに参加する最良の方法は何ですか?多くのlinqと同様の式を持つクエリ
modelBuilder.Entity<DocumentUploadEntity>()
.HasMany(x => x.Tags)
.WithMany(x => x.Documents)
.Map(x =>
{
x.ToTable("tblUploadDocumentsTags");
x.MapLeftKey("fld_int_document_id");
x.MapRightKey("fld_int_tag_id");
});
:
は、私は、このようにそれらをマッピング私は、文書クラス
[Table("tblUploadDocument")]
public class DocumentUploadEntity
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Column("fld_int_ID")]
public int ID { get; set; }
public virtual ICollection<Tag> Tags { get; set; }
}
を持って
好きな 私はタグのクラスに
[Table("tblTags")]
public class Tag
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
[Column("fld_int_id")]
public virtual int Id { get; set; }
[Column("fld_str_name")]
public virtual string Name { get; set; }
public virtual ICollection<DocumentUploadEntity> Documents { get; set; }
}
を持つタグクラスを持っています
同じような表現でタグ名を含むドキュメントを検索したい。私は、SQLでこれを行うにした場合、私はこれを行うだろう:
SELECT * FROM tblUploadDocument d
INNER JOIN tblUploadDocumentsTags ud
ON fld_int_document_id = d.fld_int_id
INNER JOIN tbltags t
ON ud.fld_int_tag_id = t.fld_int_id
WHERE t.fld_str_name like 'foo%';
テーブル名やフィールド名を言い訳してください、これは私のやっていないでした。
どのようにlinqとエンティティフレームワークでこれを行うことができます。
彼の好きな演算子は 'foo%'なので、彼はStartsWithが必要です。含まれていません。 –
@JamesDev Ah、正直、ありがとう! –