Kezdőoldal » Számítástechnika » Programozás » EntityFrameWork CodeFirst-el...

EntityFrameWork CodeFirst-el kapcsolatban segítséget kérhetek?

Figyelt kérdés

Szeretnék rá generikus metódust, hogy egy beérkező string vagy objektum alapján megtalálja és feltöltse az adatbázisom egy tábláját azzal az entitással, ami paraméterben érkezik. A fejléc így néz ki, a többit már nem tudom;

public void UploadDb<T>(T entity) where T : class

{

using (var dbc = new DbContext())

{

//Ide kerülne a varázslat

}

}



2014. jan. 27. 20:30
1 2
 1/11 anonim ***** válasza:

dbc.TáblaNév.InsertOnSubmit(entity);

dbc.SubmitChanges();


Elméletileg.

2014. jan. 27. 22:03
Hasznos számodra ez a válasz?
 2/11 A kérdező kommentje:
Igen, de a táblanevet nem tudom, pont ez lenne a lényege, hogy dinamikusan kezelhető legyen a metódus.
2014. jan. 28. 07:50
 3/11 anonim ***** válasza:
dbc.Set(entity.GetType()).Add(entity);
2014. jan. 28. 09:17
Hasznos számodra ez a válasz?
 4/11 anonim ***** válasza:
Ja, és SaveChanges-t kell hívni. Az első válaszoló példája nem EntityFramework, hanem LINQ2Sql
2014. jan. 28. 09:19
Hasznos számodra ez a válasz?
 5/11 anonim ***** válasza:

Illetve ha már úgyis adott az entity típusa, akkor lehet szerencsésebb így hívni:

dbc.Set<T>.Add(entity);

2014. jan. 28. 09:23
Hasznos számodra ez a válasz?
 6/11 A kérdező kommentje:

köszönöm, nagyon sokat segített, működik. Ha már témánál vagyunk, és elcsíptem egy entityframework specialistát, lenne még egy kérdésem.


Van egy engine-em, ami lekér, meg feltölt az adatbázisba dolgokat, meg stb. Ezt eddig egy A projektből hívtam meg, és nem is volt semmi gond, de most hogy B projektből hívom, hirtelen hibát dob:

"Cannot attach the file 'D:\Projects\Students02\Students02\App_Data\Student_Test01.mdf' as database 'Student_Test01'."

Azt hiszem az mdf-et keresi, vagy rossz helyen keresi, vagy valami ilyesmi :)


Nem értem miért számít az, hogy honnan hívom indítom a metódushívást, amikor a kontextus példányosítás az engine-ben történik minden alkalommal.

2014. jan. 28. 14:56
 7/11 anonim ***** válasza:

A configot mindig a hívó program config fájljából veszi, tehát ha hívod pl winforms alkalmazásból, akkro az app.configont nézd meg, ha Web-ből, akkor a web.configot.

Az nem számít, hogy az engine egy külön class lib-ben van, hisz annak nincs configja (azaz amikor lebuildeled az alkamazást, akkor az alkalamazásnak a configja kerül ki a bin könyvtárba)

Tehát mindenhol be kell állítani.

2014. jan. 28. 15:34
Hasznos számodra ez a válasz?
 8/11 A kérdező kommentje:

Köszi.


Igazából én nem csinátam eddig se semmit a config fájlokban. Annyi volt, hogy az adatbázis akkor jött létre amikor a régi projektemben futtattam le egy lekérdezést, és gondolom ekkor bekonfigolta magát. De az új projekt-et nem tudom az istenért se bekonfigolni, pedig a config fájlban ott van aminek ott kell lennie. Ha pedig átírom az adatbázis nevét a context konstruktorában (hogy létrejöjjö egy db másik néven), akkor sír a szája, hogy az engine oldalon be van kapcsolva a migráció. Ami szintén nem értem miért probléma.

2014. jan. 28. 16:01
 9/11 A kérdező kommentje:

Vagyis jobban mondva ezt kapom:


Migrations is enabled for context 'StudentContext' but the database does not exist or contains no mapped tables. Use Migrations to create the database and its tables, for example by running the 'Update-Database' command from the Package Manager Console.

2014. jan. 28. 16:04
 10/11 A kérdező kommentje:

és úgy tűnik megköveteli az enable-migrationt, az új projektre is; "enable-migration -projectname ujprojekt", de mivel ebben nincs kontextustípus, ezért nem engedi végrehajtani:

"No context type was found in the assembly 'ujprojekt'."

2014. jan. 28. 16:11
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!