Joh*_*ell 0 c# entity-framework asp.net-mvc-3
我正在寻找最有效的方法来使用 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;
}
Run Code Online (Sandbox Code Playgroud)
然而,据我所知,这需要两个数据库操作才能完成,一个用于检查记录是否存在,第二个用于返回记录。我确信必须有更好的模式/方法,但我只是没有看到它。
非常简单:使用 FirstOrDefault()。当没有条目时,它将返回 null(就像您已经一样),否则它将返回第一个条目。如果您不希望变量采用空值,请在两者之间使用替代值。
编辑:您的代码可以同样替换为以下代码,只是这个代码只会对数据库查询一次。
public static UserProfile GetUserProfile(Guid userID)
{
UserProfile oProfile = null;
using (var context = new MyEntities())
{
oProfile = (from c in context.UserProfiles where c.UserID == userID select c).FirstOrDefault();
}
return oProfile;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4074 次 |
| 最近记录: |