Beste mensen,
Toch maar een keer met EF aan de slag gegaan na al een x andere ORM's geprobeerd te hebben.
Echter zit ik in dubio.
Veel ORM's hebben een 'context'-achtig object. maar hoe ga je er nu het beste mee om?
Ik heb voor EF nu 3 manieren gevonden:
1: maak dat ding static ergens in een helper class, zodat je er altijd bij kan.
2: geef hem mee aan de functies die hem nodig hebben
3: gebruik elke keer eigen context voor wijzigingen, maar doe dit soort dingen:
Persoonlijk vind ik het netter om mijn context netjes met een using block binnen een methode te maken, maar omdat je soms een eerder opgehaald object wil koppelen met een object wat je nu gebruikt hebben die dan vaak niet dezelfde context.
Optie 1, 2 en 3 bieden allemaal een oplossing, maar ik ben op zoek naar de meest praktische. (zonder echt ranzig te doen)
Ik ken andere ORM's die bijv vaak hun contextObject als parameter meegeven. Dit is praktisch hetzelfde als 'global' maken, maar je heb het nadeel dat al je methoden extra parameters krijgen.
Optie drie ben ik een beetje bang dat dit nog wel werkt met simpele objecten, maar dat het een hel wordt als het wat complexer wordt.
Klopt dat?
Wat doen jullie?
Toch maar een keer met EF aan de slag gegaan na al een x andere ORM's geprobeerd te hebben.
Echter zit ik in dubio.
Veel ORM's hebben een 'context'-achtig object. maar hoe ga je er nu het beste mee om?
Ik heb voor EF nu 3 manieren gevonden:
1: maak dat ding static ergens in een helper class, zodat je er altijd bij kan.
2: geef hem mee aan de functies die hem nodig hebben
3: gebruik elke keer eigen context voor wijzigingen, maar doe dit soort dingen:
C#:
1
2
3
4
5
6
7
8
| var owner = (from o in context.Owners select o).FirstOrDefault(o => o.ID == oId); var child = (from o in context.Children select o).FirstOrDefault(c => c.ID == cId); owner.Children.Add(child); context.Attach(owner); context.SaveChanges(); |
Persoonlijk vind ik het netter om mijn context netjes met een using block binnen een methode te maken, maar omdat je soms een eerder opgehaald object wil koppelen met een object wat je nu gebruikt hebben die dan vaak niet dezelfde context.
Optie 1, 2 en 3 bieden allemaal een oplossing, maar ik ben op zoek naar de meest praktische. (zonder echt ranzig te doen)
Ik ken andere ORM's die bijv vaak hun contextObject als parameter meegeven. Dit is praktisch hetzelfde als 'global' maken, maar je heb het nadeel dat al je methoden extra parameters krijgen.
Optie drie ben ik een beetje bang dat dit nog wel werkt met simpele objecten, maar dat het een hel wordt als het wat complexer wordt.
Klopt dat?
Wat doen jullie?
This message was sent on 100% recyclable electrons.