NHibernate外键设置

时间:2011-07-01 10:16:38

标签: nhibernate

我有一个:

class Garage {
    int garageID;
    ISet<Car> cars
}

汽车类应该将garageID作为其属性之一,如:

class Car {
   int carID;
   int garageID;
   String name;
}

这就是它在数据库中出现的方式,但是想知道多方面的类是否应该将外键作为属性,或者ORM是否只是在执行SQL时添加了该类(假设您可以在其中指定它)映射文件)。

1 个答案:

答案 0 :(得分:1)

简而言之:不行(是的,ORM将根据您的映射文件处理FK)

“Car”表中将包含GarageId,但您不应将其添加到Car类。

可以具有双向关系(尽管对于这些是否是个好主意,意见各不相同)。

双向关系会使Car类看起来像这样:

public class Car {
     public virtual int Id {get; set;}
     public virtual Garage Garage {get; set;}  //You can traverse back up to Garage
     public virtual string Name {get; set;}
}

如果您希望我发布Fluent / XML地图,请告诉我。