From 8646db89c2fa27c2840da2d67a1b387a8b835763 Mon Sep 17 00:00:00 2001 From: Louis DeJardin Date: Sun, 21 Nov 2010 18:13:37 -0800 Subject: [PATCH] Perf - optimizing heavily called method --HG-- branch : perf --- .../Data/Conventions/RecordTableNameConvention.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Orchard/Data/Conventions/RecordTableNameConvention.cs b/src/Orchard/Data/Conventions/RecordTableNameConvention.cs index e6c3c139f..7613758f4 100644 --- a/src/Orchard/Data/Conventions/RecordTableNameConvention.cs +++ b/src/Orchard/Data/Conventions/RecordTableNameConvention.cs @@ -1,3 +1,4 @@ +using System; using System.Collections.Generic; using System.Linq; using FluentNHibernate.Conventions; @@ -8,15 +9,15 @@ using Orchard.Environment.ShellBuilders.Models; namespace Orchard.Data.Conventions { public class RecordTableNameConvention : IClassConvention { - private readonly IEnumerable _descriptors; + private readonly Dictionary _descriptors; public RecordTableNameConvention(IEnumerable descriptors) { - _descriptors = descriptors; + _descriptors = descriptors.ToDictionary(d => d.Type); } public void Apply(IClassInstance instance) { - var desc = _descriptors.Where(d => d.Type == instance.EntityType).SingleOrDefault(); - if (desc != null) { + RecordBlueprint desc; + if (_descriptors.TryGetValue(instance.EntityType, out desc)) { instance.Table(desc.TableName); } }