[ http://issues.apache.org/jira/browse/IBATISNET-86?page=comments#action_12315184 ]
Ron Grabowski commented on IBATISNET-86: ---------------------------------------- It would be nice to be able to specify where the sqlMap.config file is located when using IBatisNet.DataMapper.Mapper.Instance(). One possible place for setting this value is from a key in <appSettings>. Having a config variable that points to another config variable is kind of lame. The quick start guide: http://opensource.atlassian.com/confluence/oss/display/IBATIS/Quick+Start+Guide recommends using your own static Mapper if you need to load sqlMap.config from somewhere other than its default location. I think that's acceptable. If _mapper were protected, it would make writing your own static Mapper class much shorter: namespace CompanyName.Project.Persistence.DataMapper { public class Mapper : IBatisNet.DataMapper.Mapper { protected static void InitMapper() { DomSqlMapBuilder builder = new DomSqlMapBuilder(); _mapper = builder.Configure("App_Includes\\IBatisNet\\sqlMap.config"); } } } but I don't think you could have two classes extend IBatisNet.DataMapper.Mapper pointing to two different databases. For example: SqlMapper oracle = CompanyName.Project.Persistence.OracleDataMapper.Instance(); SqlMapper sqlServer = CompanyName.Project.Persistance.SqlServerDataMapper.Instance(); The InitMapper method of SqlServerDataMapper would never call its InitMapper becuase the static _mapper in the base class has already initalized by OracleDataMapper. I haven't tested that so I could be wrong... FYI, the quick start guide has this code: protected static void Configure (object obj) { _mapper = (SqlMapper) obj; } while the Mapper.cs in SVN has this: protected static void Configure (object obj) { _mapper = null; } The Configure method is the callback method called when the config file changes. Perhaps a better name would be ConfigurationChanged or Reset. The original NPetshop app uses the name Reset: http://svn.apache.org/repos/asf/ibatis/trunk/cs/npetshop/NPetshop.Service/ServiceConfig.cs > Make _mapper in IBatisNet.DataMapper.Mapper protected, not private > ------------------------------------------------------------------ > > Key: IBATISNET-86 > URL: http://issues.apache.org/jira/browse/IBATISNET-86 > Project: iBatis for .NET > Type: Improvement > Versions: DataMapper 1.1, DataMapper 1.2.0, DataMapper 1.2.1 > Reporter: Chris Weisel > Assignee: Gilles Bayon > Priority: Trivial > > I'm setting up IBatisNet DataMapper to use an embedded sqlmap.config, and so > I can't use the provided Mapper class. The only difference between what I'm > doing and the standard (and I would guess that this applies to most other > users as well) is that I need to change the InitMapper() method. > protected static void InitMapper() > { > DomSqlMapBuilder builder = new DomSqlMapBuilder(); > _mapper = builder.Configure("Resources.sqlmap.config, > Project.Name.Persistence); > } > This is an example of the change I need to make. If the _mapper variable > were protected, instead of private, I could simply extend Mapper and override > InitMapper and be done with it. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
