Fluent NHibernate:将可为 null 的值类型属性映射为组件

发布于 2024-09-07 03:45:49 字数 746 浏览 5 评论 0原文

如何将可空值类型属性映射为 NHibernate 中的组件?

例如:

public struct PersonName
{
    public string FirstName { get; private set; }
    public string LastName { get; private set; }

    public PersonName(string firstName, string lastName)
    {
        FirstName = firstName;
        LastName = lastName;
    }
}

public class Person
{
    public PersonName? Name { get; set; }
}

public class PersonDbMap : ClassMap<Person>
{
     public PersonDbMap()
     {
         /* This part doesn't compile! */
         Component(x => x.Name,
             part =>
             {
                 part.Map(x => x.FirstName, "FirstName");
                 part.Map(x => x.LastName, "LastName");
             }
     }
}

How can I map a nullable value-type property as a component in NHibernate?

For example:

public struct PersonName
{
    public string FirstName { get; private set; }
    public string LastName { get; private set; }

    public PersonName(string firstName, string lastName)
    {
        FirstName = firstName;
        LastName = lastName;
    }
}

public class Person
{
    public PersonName? Name { get; set; }
}

public class PersonDbMap : ClassMap<Person>
{
     public PersonDbMap()
     {
         /* This part doesn't compile! */
         Component(x => x.Name,
             part =>
             {
                 part.Map(x => x.FirstName, "FirstName");
                 part.Map(x => x.LastName, "LastName");
             }
     }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

云淡月浅 2024-09-14 03:45:49

无法将 struct 映射为组件。

您需要将其设为一个类,或实现一个IUserType

It's not possible to map a struct as a component.

You need to make it a class, or implement a IUserType.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文