Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En LINQ to SQL, se asigna un modelo de objetos a una base de datos relacional. La asignación se habilita mediante una asignación basada en atributos o mediante un archivo de asignación externo para describir la estructura de la base de datos relacional. En ambos escenarios, hay información suficiente sobre la base de datos relacional para crear una instancia nueva de la base de datos mediante el método DataContext.CreateDatabase.
El método DataContext.CreateDatabase crea una réplica de la base de datos solo en lo que respecta a la información codificada en el modelo de objetos. Es posible que los atributos y los archivos de asignación del modelo de objetos no codifiquen todos los elementos de la estructura de una base de datos existente. La información de asignación no representa el contenido de las funciones definidas por el usuario, los procedimientos almacenados, los desencadenadores y las restricciones CHECK. Este comportamiento es suficiente para varias bases de datos.
Podría utilizar el método DataContext.CreateDatabase en cualquier escenario, especialmente si está disponible un proveedor de datos conocido, como Microsoft SQL Server 2008. Entre los escenarios típicos, se pueden citar los siguientes:
Se crea una aplicación que se instala automáticamente en un sistema del cliente.
Se crea una aplicación cliente que necesita que una base de datos local guarde su estado sin conexión.
También puede utilizar el método DataContext.CreateDatabase con SQL Server mediante un archivo .mdf o un nombre del catálogo, dependiendo de su cadena de conexión. LINQ to SQL utiliza la cadena de conexión para definir la base de datos que se va a crear y en qué servidor se va a crear.
![]() |
---|
Siempre que sea posible, utilice Windows Integrated Security para conectar con la base de datos, de modo que no se requieran contraseñas en la cadena de conexión. |
Ejemplo
El código siguiente proporciona un ejemplo de cómo se crearía una nueva base de datos denominada MyDVDs.mdf.
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
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;
}
Puede utilizar el modelo de objetos para crear una base de datos de la manera siguiente:
Public Sub CreateDatabase()
Dim db As New MyDVDs("c:\...\mydvds.mdf")
db.CreateDatabase()
End Sub
public void CreateDatabase()
{
MyDVDs db = new MyDVDs("c:\\mydvds.mdf");
db.CreateDatabase();
}
Cuando cree una aplicación que se instale automáticamente en un sistema de un cliente, compruebe si la base de datos existe y quítela antes de crear una nueva. La clase DataContext proporciona los métodos DatabaseExists y DeleteDatabase para ayudarle en este proceso.
En el ejemplo siguiente se muestra una manera de usar estos métodos para implementar este enfoque:
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
public void CreateDatabase2()
{
MyDVDs db = new MyDVDs(@"c:\mydvds.mdf");
if (db.DatabaseExists())
{
Console.WriteLine("Deleting old database...");
db.DeleteDatabase();
}
db.CreateDatabase();
}
Vea también
Referencia
Asignación basada en atributos (LINQ to SQL)
Referencia de asignación externa (LINQ to SQL)
Correspondencia de tipos SQL-CLR (LINQ to SQL)