我们正在为数据库构建一个小型培训计划,并且有一个Web界面来定义它们之间的实体和关系。这遵循一个非常简单的模式,"添加实体","添加字段","添加链接字段" (一对多,多对一,多对多)。
我们的域名结构非常简单:
public class GenericEntity() {
public string Id {get;set;}
public IDictionary<string,object> Fields {get;set;}
}
字段也可以表示关系,映射的方式类似于NHibernate关系映射。
我们希望在运行时将这些实体构建并链接在一起,并使用Postgres(尽管理想情况下,提供程序不可知)数据库动态更新模式更新。
我们已经尝试过NHibernate,而几乎满足了我们的需求,但我们只是坚持使用动态映射。
所以问题是,是否存在允许定义完全元数据驱动映射的ORM,然后处理基础SCHEMA更新以及所有标准ORM,将获取的值映射回通用实体类?
或者任何NHibernate专家都可以告诉我们如何实现这一目标?我们已经接近使用mapping by code了,但这仍然依赖于在编译时知道属性的名称。