Was ist der beste Weg, um eine viele zu viele am Entity Framework beizutreten.viele zu viele linq Abfrage mit like Ausdruck
Ich habe einen Tag Klasse
Lieblings I: Tag Klasse
[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; }
}
Ich habe eine Dokumenten-Klasse
[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; }
}
I Karte sie wie dieses:
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");
});
Ich möchte nach allen Dokumenten suchen, die einen Tag-Namen in einem ähnlichen Ausdruck enthalten. Wenn ich dies in SQL zu tun, würde ich dies tun:
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%';
Bitte entschuldigen Sie die Tabellennamen und Feldnamen, das war nicht mein Zutun.
Wie kann ich dies mit Linq und Entity Framework tun.
Sein ähnlicher Operator ist 'foo%', also braucht er ein StartsWith nicht Enthält –
@JamesDev Ah, richtig, danke! –