0
我需要在会话/缓存中存储用户设置(如地址,访问权等),以便通过基本控制器(MVC项目)访问它们。如何从实体中删除代理
当我尝试从会话达到User.Address
如可以想像它说:
的ObjectContext的实例已设置,并且可以不再为需要连接的操作中使用 。
地址是用户实体上的导航属性。
我不想用DTO。
有没有解决方法?
谢谢。
我需要在会话/缓存中存储用户设置(如地址,访问权等),以便通过基本控制器(MVC项目)访问它们。如何从实体中删除代理
当我尝试从会话达到User.Address
如可以想像它说:
的ObjectContext的实例已设置,并且可以不再为需要连接的操作中使用 。
地址是用户实体上的导航属性。
我不想用DTO。
有没有解决方法?
谢谢。
我同意格特,但我更喜欢这样写。 (用于编译时错误检查)
public User GetUser(int userId)
{
using (var db = new MyContext())
{
return db.Users.Include(p => p.Address).Single(u => u == userId);
}
}
当您从数据库中提取用户时,您必须使用Include
的地址。例如,像这样的东西(存储库或服务):
public User GetUser(int userId)
{
using (var db = new MyContext())
{
return db.Users.Include("Address").Single(u => u == userId);
}
}
地址是一种lazzy载入属性?如果会话上下文将丢失dbContext,则应该加载它们全部。 –
是的,地址是一个延迟加载属性。 – shortcode
标题和问题之间的关系是什么? :) –