动态更改 NHibernate 中的对象

Dynamically change object in NHibernate

我想使用 NHibernate 查询具有不同对象的数据库。我有一个字符串,根据该字符串是什么,我想 return 一个对象并使用该对象查询数据库。但是,我不确定最好的设计是什么。

简单逻辑:

public object CheckString(string s){
    if(s == "A")
        return objA;
    else if(s == "B")
        return objB;
}

public void main(){
    var obj = CheckString("A");
    session.CreateCriteria<obj>().List<obj>();
}

您可以使用此重载 ICriteria CreateCriteria(string entityName):

public string CheckString(string s){
    if(s == "A")
        return "EntityA";//entity name from the database
    else if(s == "B")
        return "EntityB";//entity name from the database
}

public void main(){
    string entityName = CheckString("A");
    session.CreateCriteria(entityName).List<T>();
}