MVC4 Daten mit Many to Many-Beziehung speichern
Viele zu viele Beziehung
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Company>()
.HasMany(c => c.Tags)
.WithMany(t => t.Companies)
.Map(m =>
{
m.MapLeftKey("Companyid");
m.MapRightKey("tagid");
m.ToTable("CompanyTags");
}
}
Firma hinzufügen
var company = new Company() { Name = "FooBar Inc" };
Tag hinzufüge
int tagId = _db.Tags.Where(x => x.Title == tag).Select(x => x.Id).SingleOrDefault();
if (tagId==0)
company.Add(new Tag { Title = tag});
else
?????? //still create a relationship in CompanyTags (companyid,tagid)
context.Companies.Add(company);
context.SaveChanges();
So konfigurieren Sie dies, wenn eine neue Firma erstellt wird und wenn das Tag in der Tag-Tabelle vorhanden ist. Erstellen Sie das Tag nicht, aber erstellen Sie trotzdem die Beziehung in der CompanyTags-Tabelle
UPDATE ohne if-Bedingung, wenn der Benutzer zum Beispiel den Tag title dog hinzufügt und wenn es existiert, wird ein neuer Datensatz in der Tag-Tabelle erstellt. Stattdessen möchte ich, dass kein Tag in der Tag-Tabelle erstellt wird, sondern nur in der Zuordnungstabelle (siehe Abbildung unten).