我正在寻找最有效的方法来使用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;
}
然而,这从我可以告诉需要两个DB操作来完成,一个以检查记录存在和第二归还。我确信必须有更好的模式/方法,我只是没有看到它。
var profile =(from c in context.UserProfiles where c.UserID == userID select c).First(); – 2012-07-26 14:29:43
使用'FirstOrDefault'它将转化为'SELECT TOP 1',如果没有找到它,结果为'NULL',所以你可以通过Martins的(FirstOrDefault)回答失去任何延伸的'Any'扩展 – Silvermind 2012-07-26 14:30:28