EntityFrameWork CodeFirst-el kapcsolatban segítséget kérhetek?
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
}
}
dbc.TáblaNév.InsertOnSubmit(entity);
dbc.SubmitChanges();
Elméletileg.
Illetve ha már úgyis adott az entity típusa, akkor lehet szerencsésebb így hívni:
dbc.Set<T>.Add(entity);
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.
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.
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.
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.
é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'."
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!