C# WPF ADO .Net Entity Data Model és app.config kapcsolata

C# WPF ADO .Net Entity Data Model és app.config kapcsolata
2013-10-11T01:27:42+02:00
2013-10-14T16:58:08+02:00
2022-11-29T20:55:44+01:00
iolah2
Sziasztok!

Visual studio 2012-ben írok C#-ban WPF-el adatbáziskezelő alkalmazást. Az adatbázisomat egy külső Microsoft SQL((local)\SQLEXPRESS) serverről kérem be, melynek elérhetőségét a project app.config fájlja tartalmazza. Az adatbázist(legyen pl Mestersakk) Entity Data Model-en keresztül érem el(EF 5.x EntityObject generatort használva).

A gondom, hogy olyan alkalmazást szeretnék, melyen be tudom állítani(pl.: ha másik gépre telepítem), hogy az app.configban milyen connectionstringem szükséges.
Ha jól tapasztaltam a connectionstringhez tartozó Name adott(pl-ban Mestersakk), így setting-el nem találtam megoldást rá.

Tehát célom, ha más út nincs rá, hogy szükség esetén az eredeti app.config-et(nem csak a debug-os verzióját)átírhassam futás időben. Esetleg lehet-e valamivel kibővítve telepíteni(pl.: külső fájlból beolvasni, oda kilvülről beírni a ConnectionStringet)?
Köszönöm a segítséget

app.config
<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > <section name="VonalkodolvasoBlend4.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> </sectionGroup> </configSections> <connectionStrings> <add name="Mestersakk" connectionString="metadata=res://*/Mestersakk.MestersakkModel1.csdl|res://*/Mestersakk.MestersakkModel1.ssdl|res://*/Mestersakk.MestersakkModel1.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.\SQLEXPRESS;initial catalog=Mestersakk;user id=sma;password=jsl;multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" /> </connectionStrings> <entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> </entityFramework> </configuration>
Mutasd a teljes hozzászólást!
Rákerestem a Net-en, és azt írják, hogy nem kell az eredeti ConnectionString-et használnod: katt ide
Illetve használhatod az EntityConnectionStringBuilder-t akár egyes részeinek a módosításához:katt ide (példával az alján).
Mutasd a teljes hozzászólást!

  • Vedd fel a referenciák közé a
    System.Configuration
    -t.
    Ezt követően már elérheted a
    System.Configuration.ConfigurationManager
    -t
    Mutasd a teljes hozzászólást!
  • Szia
    Köszi azzal már próbálkoztam, csak nem tudom mi a Myproject.App.config módosítási elérése vele, ha képes rá
    A bin/debug-beli config-ot be tudtam vele korábban is állítani, de azt nem fogadja el az Entity Data Model kapcsolatstringnek(mindig a sima app.config-ból keres).
    Amúgy a legjobb talán az lenne ha installálásnál, vagy esetleg később is egy az installálás célmappájánál lévő text file-ban tárolhatnám(így indítás előtt beállítható lenne?) vagy valahogy setting segítségével?

    Azt szeretném még kérdezni, hogy SakkEntities ctx = new SakkEntities(); módon hívom a wpf xaml.cs háttérfájljában a kapcsolatot és indításkor az első mezőben az első kereséskor lassabb. Ezt valahogy ki lehet küszöbölni?(pl.: elötte készítse fel és inkább a betöltés legyen kicsit lassabb)

    Köszönöm segítségedet
    Mutasd a teljes hozzászólást!
  • Az nem jó, hogy a Project: Properties - Settings.settings -be felviszed pl. a peldaConnectionString-et? Bár látom, hogy valami ilyesmit csináltál...
    Az alapértékét megadod a Value mezőben és az értékét aztán minden gépen átírhatod a *.exe.config fájlban.

    Programban aztán Pelda.Properties.Settings.peldaConnectionString-ként használható. Ez neked nem működött?

    Ugyanitt tárolhatsz, akár a programból is bármilyen adatot,
    Pelda.Properties.Settings.Default.Statusz = "Kezdő";
    Pelda.Properties.Settings.Default.Save(); //ténylegesen ez menti el.

    aztán update-elheted, stb.
    Mutasd a teljes hozzászólást!
  • Az utóbbi kérdéshez:
    Ha a betöltési szakasz elején meghívod az adatbázisod pl. T-SQL: "sp_tables"-el, akkor az aktivizálja az SQL szervert és betölteti az addig akár lezárt állapotú adatbázisod.
    Így gyorsabb lehet az első adatlekérésed.
    Mutasd a teljes hozzászólást!
  • Ezzel pont ez a gondom Pelda.Properties.Settings.peldaConnectionString -al használhatom,
    de nekem az EDMX (Entity data model-nél pl.: Pelda1 rögzített néven szerepel). Arra gondoltam eddig is hogy settinget használjak, csak a Name = "Pelda.Properties.Settings.peldaConnectionString"-el nem tudom mit kezdjek, hogy írjam át Name="Pelda1"-re
    Mutasd a teljes hozzászólást!
  • Rákerestem a Net-en, és azt írják, hogy nem kell az eredeti ConnectionString-et használnod: katt ide
    Illetve használhatod az EntityConnectionStringBuilder-t akár egyes részeinek a módosításához:katt ide (példával az alján).
    Mutasd a teljes hozzászólást!
  • Szia
    Köszi a segítséget, remélem mindenben boldogulok.
    Amúgy annyi problémát még felfedeztem, hogy a connection stringben nem mindegy &quot; vagy "" szerepel és ez eddig jól összezavart
    app.configban jó -
    provider connection string=&quot;data source=.\SQLEXPRESS;initial catalog=AcMasina;user id=sa;password=sql;multipleactiveresultsets=True;application name=EntityFramework&quot;"
    - végződés, de a Entities(string conn)-nél a conn-ben -
    provider connection string=""data source=.\SQLEXPRESS;initial catalog=AcMasina;user id=sa;password=sql;multipleactiveresultsets=True;application name=EntityFramework"""
    - kell szerepeljen. Ezt kissé nehezen találtam meg.
    Köszönöm a segítséget
    Mutasd a teljes hozzászólást!
  • Szia!

    Érdeklődnék, ha megírok C#-al egy WPF alkalmazást, hogy érdemes installálni?
    Célom hogy megadhassam hova telepítsen és telepítés során a connectionStringemet is beállíthassam(számítógép függő). A sima click once-nál nem kérdezi hova akarom telepíteni.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd