我目前正在计划将“手动查询编写”代码切换到一个不错的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;
}
谢谢!
答案 0 :(得分:41)
var address = Context.Addresses.First(a => a.Id == addressId);
答案 1 :(得分:4)
您可以使用Single
或First
方法。
这些方法之间的区别在于Single期望单行并且如果它没有单行则抛出异常。
两者的用法相同
答案 2 :(得分:0)
(基于VS 2015)如果您创建.edmx(添加 - > ADO.NET实体数据模型)。
完成创建“.edmx”的步骤并使用以下命令运行存储过程。 emailAddress
是您传递给存储过程g_getLoginStatus
的参数。这会将第一行拉入LoginStatus
,status
是数据库中的一列:
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;
}