excellent idea, i solved tha same problem (of partially loading
entities and pushing them with wcf) using projections, but the use of
projections has certain limitations mainly to as to what level of the
object graph can someone load.

has anybody tested what happens if we send the partially loaded object
back for update?

thank you,

giannis


On 2 Φεβ, 15:58, "[email protected]" <[email protected]>
wrote:
> What you need is a data contract serializer to push data across the
> pipe (the example below is only for outgoing).  If it see's an
> uninitialized proxy, it will skip serialization on it.
>
> using System;
> using System.CodeDom;
> using System.Reflection;
> using System.Runtime.Serialization;
> using System.Collections.ObjectModel;
> using log4net;
> using NHibernate.Proxy;
>
> namespace MyNamespace.ServiceModel {
>     public class NhDataContractSurrogate : IDataContractSurrogate {
>         private static readonly ILog log = LogManager.GetLogger(typeof
> (NhDataContractSurrogate));
>
>         #region IDataContractSurrogate Members
>         public object GetObjectToSerialize(object obj, Type
> targetType) {
>             log.Debug("Checking object");
>             var proxy = obj as INHibernateProxy;
>             if (proxy != null) {
>                 log.Debug("Hibernate proxy found");
>                 var li = proxy.HibernateLazyInitializer;
>                 if (li.IsUninitialized) {
>                     log.Debug("Hibernate proxy is not initialized and
> will not be serialized");
>                     obj = null;
>                 }
>                 else {
>                     obj = li.GetImplementation();
>                     log.DebugFormat(
>                         "Hibernate proxy was initialized and has been
> casted to its implementation of type '{0}'",
>                         obj.GetType().FullName
>                     );
>                 }
>             }
>             return obj;
>         }
>
>         public object GetCustomDataToExport(Type clrType, Type
> dataContractType) {
>             return null;
>         }
>
>         public object GetCustomDataToExport(MemberInfo memberInfo,
> Type dataContractType) {
>             return null;
>         }
>
>         public Type GetDataContractType(Type type) {
>             return type;
>         }
>
>         public object GetDeserializedObject(object obj, Type
> targetType) {
>             return obj;
>         }
>
>         public void GetKnownCustomDataTypes(Collection<Type>
> customDataTypes) {
>         }
>
>         public Type GetReferencedTypeOnImport(string typeName, string
> typeNamespace, object customData) {
>             return null;
>         }
>
>         public CodeTypeDeclaration ProcessImportedType
> (CodeTypeDeclaration typeDeclaration, CodeCompileUnit compileUnit) {
>             return typeDeclaration;
>         }
>
>         #endregion
>     }
>
> }
>
> On Feb 2, 5:37 am, Peter Derwa <[email protected]> wrote:
>
>
>
> > Hey,
>
> > I've downloaded the new version of NHibernate and I found some
> > comments about the possibilities to create your own custom lazy loader
> > for the new NHibernate version.
> > Now that looks great!!! we are using a WCF Service so we are currently
> > working with lazy = false, and that kinda sucks big time, because when
> > loading a complete table with lots of relations, that will consume
> > quite allot of time.
>
> > Could someone point me into a right direction of how to do that? I was
> > not able to find the right article yet.
> > One note to keep in mind, we have multiple projects aka databases, so
> > in my lazy loading customization i'll have to be able to add that
> > project ID to create a session to the right database!
>
> > grt- Απόκρυψη κειμένου σε παράθεση -
>
> - Εμφάνιση κειμένου σε παράθεση -

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en.

Reply via email to