Pfad der erstellten DB ändern bei EF code first möglich?

  • WPF

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Jeiss.

    Pfad der erstellten DB ändern bei EF code first möglich?

    Hallo alle zusammen,
    ​Wollte mal fragen ob hier jemand weiß ob man in einem WPF Projekt den Pfad einer mittels Entity Framework Code First erzeugten SQL-Datenbank ändern kann.

    ​Und zwar so, dass das Projekt natürlich weiterhin "läuft" und , dass die "migrations" Funktionalität des Datenmodels erhalten bleibt.

    Danke,
    ​Jeiss
    Hallo @Jeiss

    Erstmal stellt sich die Frage ob du mit EF 6 oder mit Ef Core arbeitest. Hier gibt es diverse unterschiede was dein Problem betrifft.

    Hier eine Übersicht

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.
    Hallo @MrTrebron
    Ja kann sein, dass die Zwei bei StackOwerflow über das gleiche Problem diskutieren....
    Ich verstehe aber ehrlich gesagt nicht ganz genau wie die das Problem zu lösen versuchen.

    Also der Erste der möchte wissen wie man....:
    how to change the physical location of database.mdf by class?

    Der möchte das also durch ändern der klasse erreichen.

    Daraufhin rät der zweite ihm:
    I would just declare another constructor on your database context where you send in the location of the database.

    Und hier der C# Code mit dem das erreicht werden soll.

    C#-Quellcode

    1. public DatabaseContext(string connection) : base(connection) { }

    Mit C# komme ich eigentlich nicht so richtig klar, leider.
    ​Es kann also durchaus sein, dass dies eine mögliche Antwort auf meine Frage ist. Aber wie gesagt C#​ ist nicht so mein ding, in VB.NET wäre mir viel lieber.
    ​Und außerdem muss/brauch es bei mir nicht in der Klasse gemacht werden. In irgend einem Setting wäre mir sowieso irgendwie lieber.
    ​In dem Beispiel scheint es sich auch um Windows Forms zu handeln, bei mir ist es eine "Console Application" mit Visual Studio 2015. Und meine App.Config Datei ist viel kleiner als die im StackOwerflow Beispiel.

    Quellcode

    1. ​<?xml version="1.0" encoding="utf-8"?>
    2. <configuration>
    3. <configSections>
    4. <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    5. <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    6. </configSections>
    7. <startup>
    8. <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
    9. </startup>
    10. <entityFramework>
    11. <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
    12. <parameters>
    13. <parameter value="mssqllocaldb" />
    14. </parameters>
    15. </defaultConnectionFactory>
    16. <providers>
    17. <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    18. </providers>
    19. </entityFramework>
    20. </configuration>

    ​Gut wie gesagt, kann ja sein, dass das eine Möglichkeit wäre um den Pfad der DB zu ändern.
    ​Aber da bliebe noch die wichtige Frage, ob die Migrations Funktionalität erhalten bleiben würde?
    ​Tut mir leid @MrTrebron, aber wie du siehst stell ich mir noch zu viele Fragen. Ist mir noch nicht alles ganz klar....

    ​Ich schau mir deshalb noch @Nofear23m's Antwort an, mal sehen ob ich damit besser zurecht komme.

    ​Uebrigens das hier ist das MSDN Beispiel das ich nach-programmiert hab. Aber wie gesagt, in VB.NET statt in C#
    msdn.microsoft.com/en-us/library/jj193542(v=vs.113).aspx

    ​Ok melde mich dann sicher bald wieder.

    Danke,
    Jeiss