データベースのファイル名をプログラムで設定するにはどうすればよいですか?

mpen

このチュートリアルに従ってDbConfigurationクラスを作成しました

class ImgSigDbConfig : DbConfiguration
{
    public ImgSigDbConfig()
    {
        SetDefaultConnectionFactory(new LocalDbConnectionFactory("v11.0")); 
    }
}

そしてDbContextそれを使うように私に言いました:

[DbConfigurationType(typeof(ImgSigDbConfig))] 
class ImgSimContext : DbContext 
{

これはうまく接続されているように見えますが、データがどこに保存されているのかわかりません。それは好きではありません。すべてをApp_Dataフォルダー内のファイルに保存したいと思います。ImgSigDbConfigコンストラクター内からそれを指定するにはどうすればよいですか?(SQLサーバー接続について何も知らないと仮定します)


もう少し掘り下げて、これを思いついた:

public ImgSigDbConfig()
{
    var sqlConnBuilder = new SqlConnectionStringBuilder();
    sqlConnBuilder.DataSource = ".";
    sqlConnBuilder.InitialCatalog = "ImgSim.ImgSimContext";
    sqlConnBuilder.IntegratedSecurity = true;
    sqlConnBuilder.AttachDBFilename = @"App_Data\database.mdf";

    SetDefaultConnectionFactory(new LocalDbConnectionFactory("v11.0", sqlConnBuilder.ToString()));
}

しかし今それは投げます:

プロバイダーがProviderManifestToken文字列を返しませんでした


ハイムとガンサーの提案に従って、私は余分な接続設定を削除しました。

class ImgSigDbConfig : DbConfiguration
{
    public ImgSigDbConfig()
    {
        var sqlConnBuilder = new SqlConnectionStringBuilder();

        sqlConnBuilder.IntegratedSecurity = true;
        sqlConnBuilder.MultipleActiveResultSets = true;

        SetDefaultConnectionFactory(new LocalDbConnectionFactory("v11.0", sqlConnBuilder.ToString()));
        SetManifestTokenResolver(new DefaultManifestTokenResolver());
    }
}

そしてそれらをProgram.csに移動しました:

var conn = new SqlConnectionStringBuilder
{
    AttachDBFilename = @"App_Data\database.mdf",
    //InitialCatalog = "ImgSim.ImgSimContext",
};

using (var db = new ImgSimContext(conn.ToString()))

しかし、それでもSystem.Data.Entity.Core.ProviderIncompatibleException、InnerExceptionが発生します。

プロバイダーはProviderManifestToken文字列を返しませんでした。

SetManifestTokenResolver-を設定したのに、デフォルトのものは機能しないと思いますか?

アヴニーシュ

LocalDbConnectionFactoryコンストラクターv11.0を使用すると、sqlserver 2012に接続でき、デフォルトでは、app.config内の接続文字列の名前をコンテキストのフルネームとして検索しようとします。configで接続文字列を指定しておらず、Testという名前のデータベースを(以下で指定するデータディレクトリに)作成する場合は、次のようにコンストラクターを設定する必要があります。

   [DbConfigurationType(typeof(ImgSigDbConfig))]
class MyDbContext : DbContext
{
    public MyDbContext(string nameOrConnectionString)
        : base(nameOrConnectionString)
    {
    }

    public DbSet<Person> Persons { get; set; }
}

これで、コンテキストを呼び出すことができます。

AppDomain.CurrentDomain.SetData("DataDirectory", @"c:\App\DataDirectory");
        MyDbContext myDbContext = new MyDbContext("test"); //this is the name
        myDbContext.Persons.Add(new Person() { Id = 1, Name = "Name1" });
        myDbContext.SaveChanges();

構成は同じままです。

class ImgSigDbConfig : DbConfiguration
{
    public ImgSigDbConfig()
    {
        SetDefaultConnectionFactory(new LocalDbConnectionFactory("v11.0"));
    }
}

データディレクトリはWebアプリではないため、手動で設定していることに注意してください。新しいデータベースを作成して接続できるように、このディレクトリにアクセス許可を与える必要があります。私のapp.configは次のようなものです:

    <configuration>  <configSections>    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />  </configSections>  <connectionStrings>
  </connectionStrings>
  <entityFramework>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>
</configuration>

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

プログラムでデータベースファイルの名前を変更するにはどうすればよいですか?

分類Dev

データベースのファイル名に名前を付け、Visual Studio 2015データベースプロジェクトでその場所を設定するにはどうすればよいですか?

分類Dev

プログラムでFirebirdデータベースファイルを作成するにはどうすればよいですか?

分類Dev

データベースのオブジェクトIDと同じファイル名を設定するにはどうすればよいですか?

分類Dev

OSXターミナルでタイトルテキストの色をプログラムで設定するにはどうすればよいですか?

分類Dev

データベースからログインユーザーのプロファイルを作成するにはどうすればよいですか?

分類Dev

WindowsのJavaサービスにタイムスタンプGCログファイル名を追加するにはどうすればよいですか?

分類Dev

WindowsのJavaサービスにタイムスタンプGCログファイル名を追加するにはどうすればよいですか?

分類Dev

設定ファイルを保存するプログラム用のGUIがありますが、この設定ファイルをダブルクリックしてGUIに設定データを直接ロードするにはどうすればよいですか?

分類Dev

ラベルアクティビティレポート(O365データガバナンス)のユーザーレベルとファイルレベルをプログラムで取得するにはどうすればよいですか?

分類Dev

テーブルビューフッターでUIViewの制約をプログラムで設定するにはどうすればよいですか?

分類Dev

CodeIgniterのhtaccessでデータベースファイルパスを設定するにはどうすればよいですか?

分類Dev

Advancedインストーラーでファイルのカスタムパスを設定するにはどうすればよいですか?

分類Dev

Windows 10:ファイルの関連付けでプログラムパスを設定するにはどうすればよいですか?

分類Dev

プログラムで設定からデフォルトランチャーを設定するにはどうすればよいですか?

分類Dev

ナビゲーターハンドルをプログラムでハイストックに設定するにはどうすればよいですか?

分類Dev

データベースを既存のAlwaysOn可用性グループ(AOAG)にプログラムで追加するにはどうすればよいですか?

分類Dev

Ubuntu Nautilusのデフォルトのファイルの関連付けを[プログラムから開く]タブにリストされていないものに設定するにはどうすればよいですか?

分類Dev

Ubuntu Nautilusのデフォルトのファイルの関連付けを[プログラムから開く]タブにリストされていないものに設定するにはどうすればよいですか?

分類Dev

Highcharts円グラフでシリーズラベルのスタイルを設定するにはどうすればよいですか?

分類Dev

Outlook VBAのカスタムフォームプロパティにイベントを設定するにはどうすればよいですか?

分類Dev

このコードで使用するファイル名をプログラムで取得するにはどうすればよいですか?

分類Dev

入力の上にラベルを付けてHtmlServiceフォーム要素のスタイルを設定するにはどうすればよいですか?

分類Dev

Clutterツールキットでプログラムのタイトルとアイコンを設定するにはどうすればよいですか?

分類Dev

FPMリストUIBBにプログラムでフィルターを設定するにはどうすればよいですか

分類Dev

EC2ホスト名をプログラムで(インスタンスの外部から)設定するにはどうすればよいですか?

分類Dev

jQueryプラグインからデータベースASP.NET MVCにデータを設定するにはどうすればよいですか?

分類Dev

SimulinkモデルでToFileブロックパラメーターをプログラムで設定するにはどうすればよいですか?

分類Dev

ディレクトリ内のすべての新しいファイルに新しいファイル名を作成するようにプログラムをコーディングするにはどうすればよいですか?

Related 関連記事

  1. 1

    プログラムでデータベースファイルの名前を変更するにはどうすればよいですか?

  2. 2

    データベースのファイル名に名前を付け、Visual Studio 2015データベースプロジェクトでその場所を設定するにはどうすればよいですか?

  3. 3

    プログラムでFirebirdデータベースファイルを作成するにはどうすればよいですか?

  4. 4

    データベースのオブジェクトIDと同じファイル名を設定するにはどうすればよいですか?

  5. 5

    OSXターミナルでタイトルテキストの色をプログラムで設定するにはどうすればよいですか?

  6. 6

    データベースからログインユーザーのプロファイルを作成するにはどうすればよいですか?

  7. 7

    WindowsのJavaサービスにタイムスタンプGCログファイル名を追加するにはどうすればよいですか?

  8. 8

    WindowsのJavaサービスにタイムスタンプGCログファイル名を追加するにはどうすればよいですか?

  9. 9

    設定ファイルを保存するプログラム用のGUIがありますが、この設定ファイルをダブルクリックしてGUIに設定データを直接ロードするにはどうすればよいですか?

  10. 10

    ラベルアクティビティレポート(O365データガバナンス)のユーザーレベルとファイルレベルをプログラムで取得するにはどうすればよいですか?

  11. 11

    テーブルビューフッターでUIViewの制約をプログラムで設定するにはどうすればよいですか?

  12. 12

    CodeIgniterのhtaccessでデータベースファイルパスを設定するにはどうすればよいですか?

  13. 13

    Advancedインストーラーでファイルのカスタムパスを設定するにはどうすればよいですか?

  14. 14

    Windows 10:ファイルの関連付けでプログラムパスを設定するにはどうすればよいですか?

  15. 15

    プログラムで設定からデフォルトランチャーを設定するにはどうすればよいですか?

  16. 16

    ナビゲーターハンドルをプログラムでハイストックに設定するにはどうすればよいですか?

  17. 17

    データベースを既存のAlwaysOn可用性グループ(AOAG)にプログラムで追加するにはどうすればよいですか?

  18. 18

    Ubuntu Nautilusのデフォルトのファイルの関連付けを[プログラムから開く]タブにリストされていないものに設定するにはどうすればよいですか?

  19. 19

    Ubuntu Nautilusのデフォルトのファイルの関連付けを[プログラムから開く]タブにリストされていないものに設定するにはどうすればよいですか?

  20. 20

    Highcharts円グラフでシリーズラベルのスタイルを設定するにはどうすればよいですか?

  21. 21

    Outlook VBAのカスタムフォームプロパティにイベントを設定するにはどうすればよいですか?

  22. 22

    このコードで使用するファイル名をプログラムで取得するにはどうすればよいですか?

  23. 23

    入力の上にラベルを付けてHtmlServiceフォーム要素のスタイルを設定するにはどうすればよいですか?

  24. 24

    Clutterツールキットでプログラムのタイトルとアイコンを設定するにはどうすればよいですか?

  25. 25

    FPMリストUIBBにプログラムでフィルターを設定するにはどうすればよいですか

  26. 26

    EC2ホスト名をプログラムで(インスタンスの外部から)設定するにはどうすればよいですか?

  27. 27

    jQueryプラグインからデータベースASP.NET MVCにデータを設定するにはどうすればよいですか?

  28. 28

    SimulinkモデルでToFileブロックパラメーターをプログラムで設定するにはどうすればよいですか?

  29. 29

    ディレクトリ内のすべての新しいファイルに新しいファイル名を作成するようにプログラムをコーディングするにはどうすればよいですか?

ホットタグ

アーカイブ