【发布时间】:2012-07-26 14:25:38
【问题描述】:
我正在寻找最有效的方法来使用 Entityframework 和 linq 从 SQL Server 数据库中调用第一个也是唯一一个项目。
我正在使用
public static UserProfile GetUserProfile(Guid userID)
{
UserProfile oProfile = null;
using (var context = new MyEntities())
{
var profiles = from c in context.UserProfiles where c.UserID == userID select c;
if(profiles.Any())
{
oProfile = profiles.First();
}
}
return oProfile;
}
然而,据我所知,这需要两个数据库操作来完成,一个检查记录是否存在,第二个返回它。我确信必须有更好的模式/方法,我只是没有看到它。
【问题讨论】:
-
var profile = (from c in context.UserProfiles where c.UserID == userID select c).First();
-
使用
FirstOrDefault,它将转换为SELECT TOP 1,如果找不到,则结果为NULL,因此您可能会丢失Any扩展名
标签: c# asp.net-mvc-3 entity-framework