延迟初始化,ORM和lambda

时间:2011-07-07 08:08:07

标签: c# nhibernate orm

我正在搜索一个轻量级代理,以便我们可以在一次点击中懒惰地实例化一个或多个对象。

理由:也许请求被批量处理并发送到服务器。即,如果单独完成,则会导致n *延迟。此外,如果这些批处理请求可以由一个lambda或SQL语句提供,则可以节省额外的时间。

情境: 假设我们有一个数据库,一个POCO模型,一种暴露该模型(代码生成/序列化)的方式,以及一个Silverlight客户端。我们的想法是,如果我们能够用POCO模型描述更新而不是通过CRUD风格的服务来推动这些更新,那会不是很好?就像发送对象图一样。

WCF是否包含此类内容?唯一的问题是,我宁愿不使用WCF。此外,类似于nhibernate的东西在ASP场景中看起来最好。

我的第一个想法是做这样的事情,但到目前为止还没有让我走得太远。

            private Lazy<Person> _person = new Lazy<Person>(() => new Person());
            public Person person
            {
                get { return _person.Value; }
            }

1 个答案:

答案 0 :(得分:0)

也许你应该在客户端创建一个'问题'列表,使用延迟初始化,一旦加载了单个项目,就会执行整个'问题'列表。在此之后,您只需启动一个新列表并在需要时加载它。

你甚至可以添加一个小线程来清空后台线程上的'问题'列表,以确保你有效地使用网络(基于优先级或其他东西)。