Bagikan melalui


Cara: Membuat Database Secara Dinamis

Dalam LINQ ke SQL, model objek dipetakan ke database relasional. Pemetaan diaktifkan dengan menggunakan pemetaan berbasis atribut atau file pemetaan eksternal untuk menggambarkan struktur database relasional. Dalam kedua skenario, ada cukup informasi tentang database relasional yang bisa Anda buat instans baru database menggunakan metode DataContext.CreateDatabase.

Metode ini DataContext.CreateDatabase membuat replika database hanya sejauh informasi yang dikodekan dalam model objek. Memetakan file dan atribut dari model objek Anda mungkin tidak menyandikan segala sesuatu tentang struktur database yang ada. Informasi pemetaan tidak mewakili isi fungsi yang ditentukan pengguna, prosedur tersimpan, pemicu, atau batasan pemeriksaan. Perilaku ini cukup untuk berbagai database.

Anda bisa menggunakan DataContext.CreateDatabase metode dalam sejumlah skenario, terutama jika penyedia data yang diketahui seperti Microsoft SQL Server 2008 tersedia. Skenario khas meliputi yang berikut:

  • Anda sedang membangun aplikasi yang secara otomatis menginstal dirinya sendiri pada sistem pelanggan.

  • Anda sedang membangun aplikasi klien yang membutuhkan database lokal untuk menyimpan status offline-nya.

Anda juga bisa menggunakan metode DataContext.CreateDatabase dengan SQL Server dengan menggunakan file .mdf atau nama katalog, tergantung pada string koneksi Anda. LINQ untuk SQL menggunakan string koneksi untuk menentukan database yang akan dibuat dan di server mana database akan dibuat.

Catatan

Bila memungkinkan, gunakan Windows Keamanan Terintegrasi untuk terhubung ke database sehingga kata sandi tidak diperlukan dalam string koneksi.

Contoh 1

Kode berikut memberikan contoh cara membuat database baru bernama MyDVDs.mdf.

public class MyDVDs : DataContext
{
    public Table<DVD> DVDs;
    public MyDVDs(string connection) : base(connection) { }
}

[Table(Name = "DVDTable")]
public class DVD
{
    [Column(IsPrimaryKey = true)]
    public string Title;
    [Column]
    public string Rating;
}
Public Class MyDVDs
    Inherits DataContext
    Public DVDs As Table(Of DVD)
    Public Sub New(ByVal connection As String)
        MyBase.New(connection)
    End Sub
End Class

<Table(Name:="DVDTable")> _
Public Class DVD
    <Column(IsPrimaryKey:=True)> _
    Public Title As String
    <Column()> _
    Public Rating As String
End Class

Contoh 2

Anda bisa menggunakan model objek untuk membuat database dengan melakukan hal berikut:

public void CreateDatabase()
{
    MyDVDs db = new MyDVDs("c:\\mydvds.mdf");
    db.CreateDatabase();
}
Public Sub CreateDatabase()
    Dim db As New MyDVDs("c:\...\mydvds.mdf")
    db.CreateDatabase()
End Sub

Contoh 3

Saat membangun aplikasi yang secara otomatis menginstal sendiri pada sistem pelanggan, lihat apakah database sudah ada dan letakkan sebelum membuat yang baru. Kelas DataContext menyediakan metode DatabaseExists dan DeleteDatabase untuk membantu Anda dalam proses ini.

Contoh berikut menunjukkan satu cara metode ini bisa digunakan untuk menerapkan pendekatan ini:

public void CreateDatabase2()
{
    MyDVDs db = new MyDVDs(@"c:\mydvds.mdf");
    if (db.DatabaseExists())
    {
        Console.WriteLine("Deleting old database...");
        db.DeleteDatabase();
    }
    db.CreateDatabase();
}
Public Sub CreateDatabase2()
    Dim db As MyDVDs = New MyDVDs("c:\...\mydvds.mdf")
    If db.DatabaseExists() Then
        Console.WriteLine("Deleting old database...")
        db.DeleteDatabase()
    End If
    db.CreateDatabase()
End Sub

Lihat juga