Uso Visual Studio 2012 C Sharp (C#) y SQL Server Express. Estoy tratando de realizar el Tutorial de MSDN: mostrar datos de una base de datos de SQL Server en un control DataGrid. He agregado la base de datos de ejemplo AdventureWorksLT2008 recomendada. Estas son las instrucciones que seguí:No se puede convertir implícitamente el tipo System.Data.Entity.DbSet <DataGridSQLExample.Product> en System.Data.Objects.ObjectQuery <DataGridSQLExample.Product>
- Cree un nuevo proyecto de aplicación WPF en Visual Basic o C#, y asígnele el nombre DataGridSQLExample.
- En el Explorador de soluciones, haga clic con el botón derecho en su proyecto, señale Agregar y luego seleccione Nuevo elemento. (Aparecerá el cuadro de diálogo Agregar nuevo elemento).
- En el panel Plantillas instaladas, seleccione Datos y en la lista de plantillas, seleccione el Modelo de datos de la entidad ADO.NET.
- Denomine el archivo
AdventureWorksModel.edmx
y luego haga clic en Agregar. (Aparece el asistente de modelo de datos de entidad.) - En la pantalla Elegir contenido del modelo, seleccione Generar desde la base de datos y luego haga clic en Siguiente.
- En la pantalla Elija su conexión de datos, proporcione la conexión a su base de datos AdventureWorksLT2008.
- Asegúrese de que el nombre sea AdventureWorksLT2008Entities y que la configuración de conexión de entidad Guardar en
App.Config
como casilla de verificación esté seleccionada, y luego haga clic en Siguiente. - En la pantalla Elija su objeto de base de datos, expanda el nodo Tablas y seleccione las tablas Product y ProductCategory.
- Haga clic en Terminar.
para recuperar y presentar los datos:
- Abrir el archivo
MainWindow.xaml
. - establecer la propiedad Ancho de la ventana a 450.
- En el editor XAML, agregue la etiqueta siguiente cuadrícula de datos entre los
<Grid>
y</Grid>
etiquetas para agregar una cuadrícula de datos llamadodataGrid1
. - Seleccione la ventana.
- Utilizando la ventana Propiedades o el editor XAML, cree un controlador de eventos para la Ventana denominada
Window_Loaded
para el evento Cargado. - Abra el archivo de código subyacente (
MainWindow.xaml.vb
oMainWindow.xaml.cs
) para la ventana. Agregue el código siguiente para recuperar los valores específicos de los solamente tablas unidas y establezca la propiedad
ItemsSource
de la cuadrícula de datos con los resultados de la consulta:using System; using System.Collections.Generic; using System.Data.Objects; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace DataGridSQLExample { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { AdventureWorksLT2008Entities dataEntities = new AdventureWorksLT2008Entities(); public MainWindow() { InitializeComponent(); } private void Window_Loaded(object sender, RoutedEventArgs e) { ObjectQuery<Product> products = dataEntities.Products; var query = from product in products where product.Color == "Red" orderby product.ListPrice select new { product.Name, product.Color, CategoryName = product.ProductCategory.Name, product.ListPrice }; dataGrid1.ItemsSource = query.ToList(); } } }
- ejecutar el ejemplo. Debería ver un DataGrid que muestra datos.
Cuando corro me sale este error:
Cannot implicitly convert type 'System.Data.Entity.DbSet' to 'System.Data.Objects.ObjectQuery' on this line: ObjectQuery products = dataEntities.Products;
obras Nada de lo que he intentado - alguna sugerencia?
Sí, eso ciertamente funcionó. Estoy confundido sobre por qué Microsoft usó la línea ofensiva en su Tutorial (aunque, por ahora, no debería estarlo. Gracias. – user1643977
Me complace ayudarlo user1643977 –
Tenía el mismo problema. Qué cosa más curiosa para Microsoft hacer. –