2013-02-25 3 views
4

Предполагая, что у меня есть следующий класс:MVC найти строку в базе данных не используется первичный ключ


public class Item 

{ 
    [Key] 
    public int itemID {get; set;} 
    public int typeID {get; set;} 
} 

Я понимаю, что найти запись в базе данных, как правило, является первичным ключом, например,

Item item = db.Item.Find(id); 

Как найти запись в другой колонке? найти все записи, где typeID = 1?

+1

Обратите внимание, что это имеет * почти * не имеет ничего общего с самой MVC - это чисто функция вашей модели и доступа к данным слоя, который является обычно агностик в отношении хостинга. – GalacticCowboy

ответ

6
Item item = db.Items.FirstOrDefault(i => i.typeID == 1); 

Имейте в виду, что если вы не используете первичный ключ, то может быть более одного элемента, соответствующего вашему запросу. Вы можете использовать FirstOrDefault, как в примере выше, чтобы получить первый (если есть) элемент, который соответствует запросу.

Чтобы получить все элементы с указанным типом идентификатора, используйте Where:

var items = db.Items.Where(i => i.typeID == 1); 
Смежные вопросы