兔子督察在么,请教一个ef的问题.

陈大欠 2014-03-03 04:59:15
最近使用ef做项目,一开始我每次操作都用using 这种方式释放 但是后来因为要用到导航属性 所以去掉了using
我在一个功能上改变来了一个字段的值 在另一个操作上取这个值 但是每次这个值都是没更新之前的 我一直没找到头绪....
...全文
190 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
陈大欠 2014-03-04
  • 打赏
  • 举报
回复
感谢大家 问题应该就是context的释放问题,我每次操作的using了 然后用到导航属性的使用Include ,问题解决.
zlbcdn 2014-03-04
  • 打赏
  • 举报
回复
可否在OnLoad()创建连接,在OnClosing()中释放Entities
q107770540 2014-03-04
  • 打赏
  • 举报
回复
引用 9 楼 claymore1114 的回复:
1.看你的 获取属性中,每次都new一个,跟 static 没关系。 2.每次使用时都new一个,在不同的方法里是不同的对象,当然不关联,除非每次操作都SavaChange了。 3.要在不同的方法里,不同的层里使用同一个对象,可以考虑单元模式,不要使用单例,不要使用一个静态成员的ef。
前两点,起初我也是这么想的,不过看了楼主在2楼的问题,又回到了对static的怀疑上:
引用 2 楼 chen644733521 的回复:
另外我直接在数据库修改一个值,不管怎样用ef取 都是修改之前的值,除非重新生成.,
..
claymore1114 2014-03-04
  • 打赏
  • 举报
回复
1.看你的 获取属性中,每次都new一个,跟 static 没关系。 2.每次使用时都new一个,在不同的方法里是不同的对象,当然不关联,除非每次操作都SavaChange了。 3.要在不同的方法里,不同的层里使用同一个对象,可以考虑单元模式,不要使用单例,不要使用一个静态成员的ef。
q107770540 2014-03-04
  • 打赏
  • 举报
回复
这样: tb1.Include("tb2").Include("tb3")
陈大欠 2014-03-04
  • 打赏
  • 举报
回复
引用 5 楼 chen644733521 的回复:
[quote=引用 4 楼 q107770540 的回复:] 是的,很有可能和static 有关 去掉static再试一下
我已经去掉了static 使用非静态的了 不知道您是怎么操作context对象的,拜托了.[/quote] 这种方式肯定会释放掉,但是要是有一个list用到导航属性了怎么办,兔子大人.
q107770540 2014-03-04
  • 打赏
  • 举报
回复
我一般都是采用常规方式: using(var ctx=new DbContext()) { ... }
陈大欠 2014-03-04
  • 打赏
  • 举报
回复
引用 4 楼 q107770540 的回复:
是的,很有可能和static 有关 去掉static再试一下
我已经去掉了static 使用非静态的了 不知道您是怎么操作context对象的,拜托了.
q107770540 2014-03-04
  • 打赏
  • 举报
回复
是的,很有可能和static 有关 去掉static再试一下
陈大欠 2014-03-03
  • 打赏
  • 举报
回复
另外我直接在数据库修改一个值,不管怎样用ef取 都是修改之前的值,除非重新生成.,
陈大欠 2014-03-03
  • 打赏
  • 举报
回复
 public static class ContextManage
    {
        private static TicketEntities _TEContext;
        public static TicketEntities TEContext
        {
            get
            {
                return ContextManage._TEContext = new TicketEntities();
            }
        }
    }
对了 我用一个类做了封装 是不是跟这个静态修饰有关系.

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧