gpt4 book ai didi

c# - NHibernate 以编程方式映射

转载 作者:行者123 更新时间:2023-11-30 22:01:55 24 4
gpt4 key购买 nike

我想创建一个自定义映射标准,这样我就不必为项目中的所有新类创建 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();
}
}

我不知道如何从我的 T 创建一个新的 ClassMapping,我该怎么做?

最佳答案

@SteveLillis 已经在评论中回答了这个问题,已经有解决方案。

NHibernate 中的 MappingByCode(见下文)和 FluentNHibernate支持使用约定和覆盖进行自动映射。

从不再可用的原始答案复制的代码映射链接

  1. First impressions
  2. Naming convention resembling Fluent
  3. Property
  4. Component
  5. ManyToOne
  6. inheritance
  7. dynamic component
  8. Set and Bag
  9. OneToMany and other collection-based relation types
  10. concurrency
  11. OneToOne
  12. Join
  13. Any
  14. List, Array, IdBag
  15. Map
  16. Id, NaturalId
  17. composite identifiers
  18. entity-level mappings
  19. the summary

关于c# - NHibernate 以编程方式映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27333985/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com