我想使用NHibernate查询具有不同对象的数据库。我有一个字符串,取决于该字符串是什么,然后我想返回一个对象并使用该对象查询数据库。但是,我不确定这个的最佳设计是什么。
简单逻辑:
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>();
}
答案 0 :(得分:1)
您可以使用此重载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>();
}