我想创建一个自定义映射标准,因此我不必为项目中的所有新类创建map.cs文件。
public class Person
{
public int PersonID { get; set; }
public string Name { get; set; }
}
通常我会这样:
public class PersonMap : ClassMapping<Person>
{
public PersonMap()
{
Table("Person");
Id(p => p.PersonID, map =>
{
map.Column("PersonID");
map.Generator(Generators.Identity);
});
Property(p => p.Name, map => map.Column("Name"));
}
}
我想使用反射基于某些标准动态创建这些映射。
public class GenericDAL<T> where T : class, new()
{
public GenericDAL()
{
Configuration hConfig = new Configuration();
hConfig.DatabaseIntegration(c =>
{
c.ConnectionStringName = "myConnectionStringName";
c.Dialect<MsSql2012Dialect>();
});
ModelMapper mapper = new ModelMapper();
//Dynamic Mapping here
ISessionFactory _sessionFactory = hConfig.BuildSessionFactory();
}
}
我不知道如何从ClassMapping
创建新的T
,我该怎么做?
答案 0 :(得分:3)
@SteveLillis已在评论中回答了问题,即已有解决方案。
NHibernate中的MappingByCode(见下文)和FluentNHibernate都支持使用约定和覆盖进行自动化。
从原始答案中复制的“按代码映射”的链接<不再可用
答案 1 :(得分:0)
我一直在寻找相同的东西,我在NHibernate official website找到了很好的文档。
Here我们拥有“fabiomaulo.blogspot”网站的所有链接,在那里你会发现你在寻找什么,没有FluentNHibernate。
祝你好运