实体框架4:选择单个记录

SeT*_*ToY 20 select entity-framework record entity-framework-4

我目前正计划将我的"手动查询编写"代码切换到一个不错的SQL框架,因此我可以将查询或sql内容留给框架,而不是自己编写查询.

现在我想知道如何从Entity Framework 4中的表中获取单条记录?

我主要使用SQL SELECT * FROM {0} WHERE Id = {1}.就我而言,这在EF4中不起作用.

有没有办法可以从我的上下文中选择一个基于ID的记录?

就像是:

public Address GetAddress(int addressId)
{
    var result = from Context.Addresses where Address.Id = addressId;

    Address adr = result as Address;

    return Address;
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

Ray*_*Ray 41

var address = Context.Addresses.First(a => a.Id == addressId);
Run Code Online (Sandbox Code Playgroud)

  • 我也会考虑使用FirstOrDefault方法.没有异常(昂贵),而是null"对象". (10认同)

due*_*l0r 5

您可以使用SingleFirst方法。

这些方法之间的区别在于,Single 需要单行,如果没有单行,则会引发异常。

两者的用法是一样的

  • 自 EF 4.0 起,查询顶部实际上支持 Single 和 SingleOrDefault。 (4认同)