Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Atur susunan basis data dalam Entity Framework Code-First Initializer

Solusi dengan pencegat perintah

Itu pasti mungkin, meskipun ini sedikit meretas. Anda dapat mengubah perintah CREATE DATABASE dengan pencegat perintah. Saya akan mencegat semua perintah yang dikirim ke database, mengenali perintah pembuatan database berdasarkan ekspresi regex, dan mengubah teks perintah dengan susunan Anda.

Sebelum pembuatan basis data

DbInterception.Add(new CreateDatabaseCollationInterceptor("SQL_Romanian_Cp1250_CI_AS_KI_WI"));

Pencegat

public class CreateDatabaseCollationInterceptor : IDbCommandInterceptor
{
    private readonly string _collation;

    public CreateDatabaseCollationInterceptor(string collation)
    {
        _collation = collation;
    }

    public void NonQueryExecuted(DbCommand command, DbCommandInterceptionContext<int> interceptionContext) { }
    public void NonQueryExecuting(DbCommand command, DbCommandInterceptionContext<int> interceptionContext)
    {
        // Works for SQL Server
        if (Regex.IsMatch(command.CommandText, @"^create database \[.*]$"))
        {
            command.CommandText += " COLLATE " + _collation;
        }
    }
    public void ReaderExecuted(DbCommand command, DbCommandInterceptionContext<DbDataReader> interceptionContext) { }
    public void ReaderExecuting(DbCommand command, DbCommandInterceptionContext<DbDataReader> interceptionContext) { }
    public void ScalarExecuted(DbCommand command, DbCommandInterceptionContext<object> interceptionContext) { }
    public void ScalarExecuting(DbCommand command, DbCommandInterceptionContext<object> interceptionContext) { }
}

Keterangan

Karena database dibuat dengan susunan yang benar sejak awal, semua kolom akan secara otomatis mewarisi susunan itu dan Anda tidak perlu MENGUBAHnya setelahnya.

Ketahuilah bahwa ini akan memengaruhi pembuatan basis data selanjutnya yang terjadi di dalam domain aplikasi. Jadi, Anda mungkin ingin menghapus pencegat setelah database dibuat.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pelajari Tentang Cara Menggunakan SQL Server Management Studio

  2. Memformat Angka dengan mengisi dengan nol di depan di SQL Server

  3. Cara Menggunakan Fungsi T-SQL SQL Server SUM:5 Kasus Penggunaan

  4. SQL Server:Kolom ke Baris

  5. Nilai NULL di dalam klausa NOT IN