2013-12-03 2 views
0

Я относительно новичок в Entity Framework. Я научился манипулировать данными в EF и основами привязки данных в gridviews и выпадающих списках с помощью C#. Но я просто не могу фильтровать записи (строки) из таблицы в базе данных и связывать их с сеткой. Ниже приведены несколько подходов я пытался:Фильтрация строк сетки с использованием Entity Framework

Чтобы связать полную таблицу (это работало BEA-utifully)

em_dbEntities1 db = new em_dbEntities1(); //"em_dbEntities1" is the Database 
gv_testef.DataSource = db.contacts ;  //"contact" is the table 
gv_testef.DataBind();      //"gv_testef" is the gridview 

экстракту однорядного НА ОСНОВЕ УСЛОВИЙ И СВЯЗЫВАТЬ, что GridView (ЭТО НЕ несчастно)

em_dbEntities1 db = new em_dbEntities1(); 
contact con = db.contacts.SingleOrDefault(p => p.id == 2); 

gv_testef.DataSource = con ; 
gv_testef.DataBind(); 

Второй подход:

gv_testef.DataSource = db.contacts.SingleOrDefault(p => p.id == 2); 

Опять же это не удалось.

Просьба оказать помощь в этом отношении.

+0

было ли исключение в вашем 2. approch? –

+0

Да, что-то о «источнике данных может быть только бесчисленным, idatasource, .. smthing» – Arawn

+0

ok - вы всегда должны публиковать исключение, если оно есть :) это помогает нам найти вашу проблему - –

ответ

2

Вы должны привязать свою сетку к коллекции элементов - .SingleOrDefault возвращает один элемент, а db.contacts - это коллекция.

Чтобы сделать фильтрацию, попробуйте использовать .Where.

em_dbEntities1 db = new em_dbEntities1(); 
gv_testef.DataSource = db.contacts.Where(p => p.id == 2); 
gv_testef.DataBind(); 
+0

Thx alot dude ... еще одна вещь может предложить вам хорошую книгу или онлайн-материал, чтобы прочитать о Entity Framework – Arawn

Смежные вопросы