Creare un Applicazione con 3 tier utilizzando Linq to Sql parte seconda

di Marco Leoncini, in asp.net,

Nella prima parte abbiamo visto come creare una semplice sezione di configurazione , oggi creeremo il primo tassello dello strato d'accesso dati.
Come accennato, mapperemo le nostre entità alle relative tabelle/colonne utilizzando un file di configurazione xml, sicuramente più flessibile rispetto a decorare classi e proprietà.

Creiamo una libreria di classi e chiamiamola TheSimpleBeach.Data.

La mappatura tra entità /tabelle è affidata alle classi derivate da MappingSource, noi utilizzeremo l'XmlMappingSource.

Il nostro compito è quindi quello ci caricare il file XML per creare l'oggetto XmlMappingSource.

Aggiungiamo una nuova classe e chiamiamola MappingSourceRepository, compito della classe è anche quello di memorizzare in una collezione gli oggetti XmlMappingSource già creati, per risparmiare l'onere di consumare ogni volta uno stream.

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Data.Linq;
using System.IO;
using System.Xml;

namespace TheSimpleBeach.Data
{
public static class MappingSourceRepository
{
private static Dictionary<string, XmlMappingSource> _repository;

static MappingSourceRepository()
{
_repository = new Dictionary<string, XmlMappingSource>(2); 
}


static public XmlMappingSource GetXmlMappingSource(string path)
{
if (string.IsNullOrEmpty(path))
{
throw new ArgumentNullException("path");
}
else
{
XmlMappingSource _mappingSource = null;

_repository.TryGetValue(path, out _mappingSource);

if (_mappingSource == null)
{
try
{
if (File.Exists(path))
{
using (Stream _stream = File.OpenRead(path))
{
_mappingSource = XmlMappingSource.FromStream(_stream);
_repository.Add(path, _mappingSource);
}
}
}
catch (Exception ex)
{
throw new ApplicationException("impossibile recuperare il file di mapping", ex);
}

}

return _mappingSource;
}
}
}
}
Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Nella stessa categoria
I più letti del mese