The the short answer is: mostly you just write code. There are going to be
more round-trips to the db but not excessively so. One of my "logical
stored procedures" might look something like this:
public int CreateSubmittal(string name, string mimeType, int projectId,
Stream data)
{
using(var tx = _session.BeginTransaction())
{
var project = _session.Get<Project>(projectId);
var tmpl = GetFolderTemplateFromXml();
var projectFolder = new Folder();
projectFolder.Name = project.Name+"_RootFolder";
projectFolder.Project = project;
AddSubfoldersRecursive(project, projectFolder, tmpl);
var submittal = new Submittal();
submittal.Project = project;
submittal.Blob = _blobStore.Upload(data);
submittal.MimeType = mimeType;
var targetFolder = project.FindFolderFor(mimeType);
submittal.Folder = targetFolder;
targetFolder.Submittals.Add(submittal);
_session.Update(project);
_sesion.Save(submittal);
_session.Save(projectFolder);
tx.Commit();
return submittal.Id;
}
}
private void AddSubfoldersRecursive(Project project, Folder f, List<
FolderTemplate> templates)
{
foreach(var t in templates)
{
var subFolder = new Folder();
subFolder.Type = t.Type;
subFolder.CanUpload = t.CanUpload;
subFolder.Name = t.Name;
subFolder.Project = project;
t.Children.Add(subFolder);
subFolder.Parent = t;
foreach(var subTemplate in t.Templates)
{
AddSubfoldersRecursive(project, subFolder, subTemplate);
}
}
}
On Monday, April 6, 2015 at 7:51:52 PM UTC-4, Juan García Bauzá wrote:
>
> Hi.
> I am developing a web service that is connected with a DB of a functional
> system. I want stop using stored procedures and begin to use ORM. I believe
> that there is that make a logic layer for NHibernate. Anyone have an
> example of NHibernate to bring various data as does a stored procedure?
>
> Regards
>
--
You received this message because you are subscribed to the Google Groups
"nhusers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/nhusers.
For more options, visit https://groups.google.com/d/optout.