sharp-oodb/mapping/ReferenceMapping.cs

38 lines
914 B
C#

using System;
using System.Xml;
namespace oodb.mapping
{
public class ReferenceMapping : NaiveMapping
{
public ReferenceMapping(OODB oodb, Type type)
: base(oodb, type)
{
}
public override object FromText(string text)
{
if (String.Empty.Equals(text))
return null;
Guid persistenceID = Guid.Parse(text);
return OODB.Load(NativeType, persistenceID);
}
public override string ToText(object value)
{
Persistent reference = value as Persistent;
if (reference == null)
{
return Guid.Empty.ToString();
}
else
{
string text = reference.PersistenceID.ToString();
OODB.Ensure(reference);
return text;
}
}
}
}