Laden...

HasMany und WithMany (1:n und m:n in EntityFramework Code First)

Erstellt von fluxy vor 13 Jahren Letzter Beitrag vor 13 Jahren 2.251 Views
Thema geschlossen
F
fluxy Themenstarter:in
183 Beiträge seit 2009
vor 13 Jahren
HasMany und WithMany (1:n und m:n in EntityFramework Code First)

verwendetes Datenbanksystem: MSSQL 2008 R2

Hi,

schon wieder ich.

Könntet ihr doch bitte euer wissen über 1:n und m:n Relationen in EF Code First zum besten geben? Ich habe im Internet WithMany, ManyRequired bzw. HasMany und ManyRequired gefunden.

Jedoch verstehe ich die Zusammenhänge nicht. Wann muss ich was verwenden?

Hintergrund ist folgender Code:


public class PersonManagerDataContext : DbContext
	{
		public DbSet<Person> Persons { get; set; }
		public DbSet<Address> Addresses { get; set; }

		public PersonManagerDataContext()
		{
			this.Database.CreateIfNotExists();
			Database.SetInitializer<PersonManagerDataContext>(new RecreateDatabaseIfModelChanges<PersonManagerDataContext>());
		}

        protected override void OnModelCreating(System.Data.Entity.ModelConfiguration.ModelBuilder modelBuilder)
        {
			
            
			modelBuilder.Entity<Person>().MapSingleType().ToTable("PersonTable");
            modelBuilder.Entity<Person>().HasKey(p => p.Id);
            modelBuilder.Entity<Person>().HasMany(p => p.Addresses).WithRequired();
			
        }
	}

Dies generiert einen Fehler, da Addresses ein Complexer Typ ist. Die Einbindung über ComplexType funktioniert wunderbar, jetzt möchte ich aber mit FK's arbeiten.

Grüße

Ich danke euch.

A
350 Beiträge seit 2010
vor 13 Jahren

Hallo,

wie in der PN beschrieben musst du deinem Model nur eine virtual ICollection<DeinTYp> mit angeben.

Wichtig MARS muss im ConnectionString angegeben werden

F
fluxy Themenstarter:in
183 Beiträge seit 2009
vor 13 Jahren

Hi Ahrimaan,

wie per PN geklärt, funktioniert das ganze für MSSQL ganz gut. Dort braucht man in der OnModelCreating nix konfigurieren. Jedoch kann es bei anderen Datenbanksystemen anders sein. wie ist dort die Syntax?

Grüße

1.552 Beiträge seit 2010
vor 13 Jahren

Hallo euch beiden,

wie per PN geklärt

Ist der nächste Satz: "Wie in der PN geklärt wurde das Problem nun gelöst" ?

Bitte beantwortet die Themen nicht per PN sonder hier im Thread denn dafür ist er auch da, denn auch andere Leute die nach euch dasselbe Problem haben möchten wissen wie es gelöst wird und nicht wer per PN angesprochen werden möchte. Habt bitte dafür Versändnis, danke.

Gruß
Michael

Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp

F
fluxy Themenstarter:in
183 Beiträge seit 2009
vor 13 Jahren

Bitte beantwortet die Themen nicht per PN sonder hier im Thread denn dafür ist er auch da, denn auch andere Leute die nach euch dasselbe Problem haben möchten wissen wie es gelöst wird und nicht wer per PN angesprochen werden möchte. Habt bitte dafür Versändnis, danke.

Ich kann ja verstehen, das die Dinge hier geklärt werden sollen. Jedoch muss es legitim sein, privat nachzufragen, wenn halt keine Antwort zu erwarten ist.

Grüße Fluxy.

2.891 Beiträge seit 2004
vor 13 Jahren

Ich kann ja verstehen, das die Dinge hier geklärt werden sollen. Jedoch muss es legitim sein, privat nachzufragen, wenn halt keine Antwort zu erwarten ist.

@fluxy: Du hast doch nicht etwa echt alle Leute angeschrieben, die mal irgendwas in Verbindung mit dem EF CodeFirst erwähnt haben (wie z.B. auch mich...)?

1.552 Beiträge seit 2010
vor 13 Jahren

Jedoch muss es legitim sein, privat nachzufragen, wenn halt keine Antwort zu erwarten ist.

Es sind mal gerade 30h zwischen dem Startpost und dem 2. vergangen. Ich denke es gibt sicherlich unzählige Posts bei denen es noch länger dauert bis eine Antwort gepostet wird.

Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp

Hinweis von talla vor 13 Jahren

Jedoch muss es legitim sein, privat nachzufragen, wenn halt keine Antwort zu erwarten ist.

Es ist absolut überhaupt nicht legitim beliebige User per PM mit einer Frage zu belästigen. Dieses Forum beruht auf freiwillige Arbeit und wenn jemand die Frage beantworten möchte dann macht er das auch im Forum. Einfach potentiellen Antwortern PMs zu schreiben ist nichts anders als Belästigung dieser User und ist nicht gestattet!

Thema geschlossen