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

时间:2012-01-26 09:39:54

标签: entity-framework select entity-framework-4 record

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

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

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

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

类似的东西:

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

    Address adr = result as Address;

    return Address;
}

谢谢!

3 个答案:

答案 0 :(得分:41)

var address = Context.Addresses.First(a => a.Id == addressId);

答案 1 :(得分:4)

您可以使用SingleFirst方法。

这些方法之间的区别在于Single期望单行并且如果它没有单行则抛出异常。

两者的用法相同

答案 2 :(得分:0)

(基于VS 2015)如果您创建.edmx(添加 - > ADO.NET实体数据模型)。 enter image description here

完成创建“.edmx”的步骤并使用以下命令运行存储过程。 emailAddress是您传递给存储过程g_getLoginStatus的参数。这会将第一行拉入LoginStatusstatus是数据库中的一列:

bool verasity = false;
DBNameEntities db = new DBNameEntities();   // Use name of your DBEntities

var LoginStatus = db.g_getLoginStatus(emailAddress).FirstOrDefault();

if ((LoginStatus != null) && (LoginStatus.status  == 1))
{
      verasity = true;
}