NHibernate与具有类属性的模型

时间:2009-07-11 12:36:25

标签: nhibernate fluent-nhibernate nhibernate-mapping

我正在使用FluentNHibernate但NHibernate XML会这样做。

说我有这个模型

public User
{
    public User()
    {
        ProfilePicture = new Picture();
    }
    public Guid Id { get; private set; }
    public Picture ProfilePicture { get; set; }
}

public Picture
{
    int width;
    int height;
}

如何告诉NHibernate如何存储和检索ProfilePicture?

我在Fluent中知道它就像

Map(x => x.ProfilePicture);

但这不起作用。

1 个答案:

答案 0 :(得分:2)

如果User和ProfilePicture来自两个不同的表,那么您应该使用References

References(x => x.ProfilePicture);

如果您需要指定列名(例如)

References(x => x.ProfilePicture, "ProfilePictureId");

documentation中有不同用例的其他几个例子。

如果ProfilePicture存储在User表中,那么您将其映射为Component

Component(x => x.ProfilePicture, c => 
    { 
        c.Map(x => x.width);
        c.Map(x => x.height);
    });