我正在尋找最有效的方法來使用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