我有一种情况,我想急切地加载使用 LINQ-to-SQL 从数据库中检索到的用户的组织属性(因为我using
在这里尝试稍后获取该属性失败,因为上下文的连接已关闭)。问题是有时用户没有组织。在这种情况下FetchUserByName
返回null
。根本不是我想要的。有没有办法让它按照我想要的方式工作,即返回一个用户实例,无论他们是否有关联的组织?
private static void EagerLoad(DataContext ctx)
{
var loadOpt = new DataLoadOptions();
loadOpt.LoadWith<User>(u => u.Organization);
ctx.LoadOptions = loadOpt;
}
public User FetchUserByName(string username)
{
User user = null;
using (var ctx = contextManager.GetSingleDataContext())
{
EagerLoad(ctx);
user = ctx.GetTable<User>().SingleOrDefault(u => u.UserName == username && u.IsActive);
}
return user;
}