:: Не фоксом единым
Привязка данных к dataGridView через Entity Framework
Зингер

Сообщений: 541
Откуда: Белгород
Дата регистрации: 02.12.2008
Получаю данные из SQL Server в ASP.NET в Windows Forms C# по технологии Entity Framework, подход Code First.
База Users, таблица Users_table.
Контекст:
public partial class ModelUsers_table : DbContext
{
public ModelUsers_table(): base("name=ModelUsers_table")
{
}
public virtual DbSet<Users_table> Users_table { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
}
}

Модель:
public partial class Users_table
{
public Guid ID { get; set; }
public Guid? Name_ID { get; set; }
public int? Age { get; set; }
}

Не получается отобразить данные в dataGridView, путем составления запроса к базе. Получается пока напрямую:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
using(ModelUsers_table db=new ModelUsers_table())
{
var users = db.Users_table;
users.Load();
dataGridView1.DataSource = users.Local.ToBindingList();
}
}

А вот с запросом беда:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
using(ModelUsers_table db=new ModelUsers_table())
{
var users = db.Database.SqlQuery<Users_table>("select * from users_table");
users.Load(); //Здесь ошибка
dataGridView1.DataSource = users.Local.ToBindingList();//Соответственно и здесь тоже.
}
}

Помогите пож-та решить проблему, желательно с объяснением.
Ratings: 0 negative/0 positive
Re: Привязка данных к dataGridView через Entity Framework
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Зачем писать SQL запрос при работе с EF, тем более CodeFirst? Что-то мне кажется что ты не понимаешь саму идеологию...
...
using (var testContext = new TestDbContext())
{
var lst = from user in testContext.Users
where user.Id == new Guid("06b8dcde187c704aac522eb6bae391c5")
select user;
Console.WriteLine("-----");
foreach (var item in lst)
{
Console.WriteLine("{0} - {1}", item.Id, item.Name);
}
}


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Привязка данных к dataGridView через Entity Framework
GotFocus
Автор

Сообщений: 1191
Откуда: Из-за угла
Дата регистрации: 30.11.2010
Нужно было просто посмотреть что возвращает db.Users_table -> DbSet<users_table>
и что возвращает db.Database.SqlQuery<Users_table>("select * from users_table") -> DbRawSqlQuery<users_table>

У DbSet есть интерфейс IQueryable с расширением Load, а у DbRawSqlQuery - нет

Если же хочется запихнуть в dataGridView1 именно этим способом, то пишем

using System.Collections.ObjectModel;
....
var users = db.Database.SqlQuery<Users_table>("select * from users_table");
ObservableCollection<Users_table> list = new ObservableCollection<Users_table>(users);
dataGridView1.DataSource = list;
Ratings: 0 negative/1 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 6 (Гостей: 6)

© 2000-2024 Fox Club 
Яндекс.Метрика