Kezdőoldal » Számítástechnika » Programozás » Az Entity Framework Core...

Az Entity Framework Core miért nem akarja megérteni, hogyan akarom az egy-a-többhöz kapcsolatot?

Figyelt kérdés

Amelyik tábla a "több", ahhoz hozzá akarja tenni az "egy" ID-ját.


Elváltoztattam a class-ok neveit, mert nem annyira publikus.


[link]


modelBuilder.Entity(...).HasMany(...).WithOne(...); beállításokat is elvégeztem gugli segítségével, természetesen a ... helyén a megfelelő lambdák, illetve a generikus paramétert is megadtam.



2020. júl. 21. 21:03
1 2
 1/14 anonim ***** válasza:
Azért akarja hozzátenni, mert felvetted a Multiple táblába a Single táblára való hivatkozást, így egy teljesen (mindkét oldalon) definiált kapcsolatot hoztál létre.
2020. júl. 21. 21:59
Hasznos számodra ez a válasz?
 2/14 A kérdező kommentje:

De egy a többhözzel szeretném. A neten mindenhol így van plusz nálam is, más táblákkal kapcsolatban.


De akkor mit kellene csinálnom? :(

2020. júl. 21. 22:14
 3/14 anonim ***** válasza:
Hol kapod a hibát? Nem tudsz elemet beszúrni? Ha a "több"-höz akarsz beszúrni egy elemet, amihez nem létezik az "egy", akkor sérül a hivatkozási integritás, amennyiben az "egy" nem nullázható. Előbb az "egy" oldalhoz rakd be az elemet az adatbázisba, utána a "több"-et.
2020. júl. 21. 22:40
Hasznos számodra ez a válasz?
 4/14 A kérdező kommentje:

Egy fix listám van és a másik táblában minden egyes rekordhoz a lista valamely id-ja kell, hogy kerüljön.


Nem hibát kapok, csak a listához be akarja szúrni a másik id-ját.



Olyan, mintha a felhasználók táblába akarna egy filmID-t tenni, holott egy felhasználó megnézhet több filmet, de azt nem gyűjtjük, hogy a filmet ki nézte meg.

Ez egy példa, nem filmes a programom.


Az enyém:

Van egy Users táblám, van egy további tábla, nevezzük A-nak. Egy-egy felhasználóhoz számos A-beli rekord fog tartozni.

Ezt az EF Core értette is.


Viszont van egy B és egy C, lényegében, tehát technikailag listák ID-val.

Ezek egy-egy eleme az A számos rekordjában elő fog fordulni.

2020. júl. 22. 07:45
 5/14 anonim ***** válasza:
Persze hogy belerakja egy a többes kapcsolatot úgy hozol létre hogy egy táblában több rekorban egy másik táblában szereplő id-ra hivatkozol... máskép nem igazán lehet egy-többes kapcsolatot létrehozni. Vagy én nem értem mire gondolsz vagy te nem érted az egy a többhöz kapcsolatot.
2020. júl. 22. 10:35
Hasznos számodra ez a válasz?
 6/14 A kérdező kommentje:

Vásárlások tábla

Mondjuk Shoppings vagy nem tudom

Mezők:

- Id

- UserId

- Date

- Amount

- ProductID - ezt szeretném vele felvetetni


Products tábla

Mezők:

- ID

- Name


Tartalma:

1 apple

2 bread

3 salt

4 butter

5 salad

6 chokolate


Na ebbe a Products táblába akar ShoppingsId nevű mezőt felvenni.

Még így szépen magától össze is rakja a nevét, pedig nincs rá property...

2020. júl. 22. 11:04
 7/14 anonim ***** válasza:

Okés így már értem, azzal próbálkoztál márv így deklarálod?

public virtual ICollection<Multiple1> Multiple1{ get; set; }

2020. júl. 22. 11:10
Hasznos számodra ez a válasz?
 8/14 A kérdező kommentje:

Itt így van:

public class Single1

{

// ...

public ICollection<Multiple1> Multiple1{ get; set; }

public ICollection<Multiple2> Multiple2{ get; set; }

}

2020. júl. 22. 11:44
 9/14 anonim ***** válasza:
Igen de a public után még írd oda hogy virtual
2020. júl. 22. 12:14
Hasznos számodra ez a válasz?
 10/14 A kérdező kommentje:

Szerintem ebbe bele is zavarodtam.


Ha egy termék elő fog fordulni sok-sok bevásárlásban, akkor nem a termék táblájába kell az ICollection?


Csak az zavar meg, hogy az egy segédtábla csak. Nem is biztos, hogy hagyok módosítási lehetőséget a "felhasználók" számára.

2020. júl. 22. 13:18
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!