[
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 . 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