Después de, en el artículo anterior, haber creado el proyecto Windows Forms Application y haber generado el modelo de datos de la base de datos, vamos a ver cómo podemos acceder a la base de datos a través del modelo, utilizando un pequeño ejemplo ilustrativo.
En el formulario Form1 creado automáticamente cuando se crea el proyecto Windows Forms Application, vamos a crear una comboBox arrastrando desde la caja de herramientas.
En el formulario Form1 creado automáticamente cuando se crea el proyecto Windows Forms Application, vamos a crear una comboBox arrastrando desde la caja de herramientas.
Después, añadimos un controlador de eventos para el evento Load de Form1 (haga doble clic en el fondo del formulario Form1), y creamos el método correspondiente al event handler (Form1_Load()):
namespace ejemploEntityFramework
{
public partial class Form1 : Form
{
carRentEntities dbContext;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
dbContext = new carRentEntities();
viaturasBox1.DataSource = dbContext.Viaturas;
viaturasBox1.DisplayMember = "matricula";
viaturasBox1.ValueMember = "Id";
}
... ... ... ... ... ...
Este método va a llenar la ComboBox viaturasBox1 cuando el Form1 empezar.
Vamos a ver cómo se hace esto con más detalle:
- La línea
carRentEntities dbContext;
declara la variable dbContext del tipo carRentEntities, que corresponde al modelo de datos creado.
- La línea
dbContext = new carRentEntities();
crea el objeto con el modelo de datos, responsable de hacer el mapeo con la base de datos, y lo asigna a la variable dbContext.
- La línea
viaturasBox1.DataSource = dbContext.Viaturas;
asocia Viaturas, en el contexto creado anteriormente, a la propiedad DataSource del comboBox, lo que indica que está ahí para leer datos para la comboBox.
- Las líneas
viaturasBox1.DisplayMember = "matricula";
viaturasBox1.ValueMember = "Id";
identifican lo atributo de Viatura que debe consignarse en comboBox (propiedad DisplayMember) y lo que debe ser devuelto como propiedad selectedValue de comboBox cuando se selecciona un coche (ValueMember).
Este extracto de código lee todas las líneas de la tabla de coches (Viatura) y rellena la comboBox.
Si, por ejemplo, la intención era para filtrar los datos por cualquier criterio podríamos utilizar LINQ para lo hacer, antes de asociar el resultado a la ComboBox.
Si, por ejemplo, la intención era para filtrar los datos por cualquier criterio podríamos utilizar LINQ para lo hacer, antes de asociar el resultado a la ComboBox.
Por ejemplo, la línea
viaturasBox1.DataSource = dbContext.Viaturas;podría ser sustituida por:
List<Viatura> listaViaturas;
IQueryable<Viatura> viaturasQuery = from v in dbContext.Viaturas
where v.marca.Equals("SEAT")
select v;
listaViaturas = viaturasQuery.ToList<Viatura>();
viaturasBox1.DataSource = listaViaturas;
En este caso, la comboBox se llena solamente con los coches cuya marca era "SEAT".
En un próximo artículo veremos cómo actualizar la base de datos utilizando el modelo creado con Entity Framework.
Otros Artículos Relacionados:
- ADO.Net Entity Framework
- Empezar a utilizar .Net Entity Framework - 1
No hay comentarios:
Publicar un comentario