如果数据库中有一组严格由字符串描述和ID组成的表,那么通过NHibernate加载这些表的最佳方法是什么?
假设我有一个三明治课,三明治有一个肉,一个奶酪和一个蔬菜,这三个东西是数据库中的查找表。它似乎是最符合NHibernate理念的
public class Meat { string name; int id; }
public class Cheese { string name; int id; }
public class Vegetable { string name; int id; }
public class Sandwich { Meat meat; Cheese cheese; Vegetable vegetable; }
但是在数据库中有几十个像这样的表,类似乎很快就会激增。假设我这样设置:
public class NameAndID { string name; int id; }
public class Sandwich { NameAndID meat; NameAndID cheese; NameAndID vegetable; }
这可行吗?如何在Fluent NHibernate中实现?
答案 0 :(得分:1)
您需要另一列来确定类型。你可以使用枚举。那么你所有的查找都需要包含那个限制......
CreateCriteria<NameAndID>.Add(Restrictions.Eq("ntype", E.Meat)
但是,我更喜欢单独的表,因此您可以拥有更好的外键。否则,数据库限制中没有任何东西阻止你制作一个只有3块奶酪的三明治。