MVC在数据库中查找行而不使用主键

blu*_*MVC 4 c# linq entity-framework

假设我有以下课程:


public class Item

{
     [Key]
     public int itemID {get; set;}
     public int typeID {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

我知道在数据库中查找记录通常是主键,例如

Item item = db.Item.Find(id);
Run Code Online (Sandbox Code Playgroud)

如何通过其他列找到记录?即查找所有记录在哪里typeID = 1

Ser*_*kiy 6

Item item = db.Items.FirstOrDefault(i => i.typeID == 1);
Run Code Online (Sandbox Code Playgroud)

请记住,如果您不使用主键,则可能有多个项目与您的查询匹配.您可以使用FirstOrDefault上面的示例来获取与查询匹配的第一个(如果有)项.

要获取具有指定类型ID的所有项目,请使用Where:

var items = db.Items.Where(i => i.typeID == 1);
Run Code Online (Sandbox Code Playgroud)