Fluent NHibernate 委托映射函数

发布于 2024-08-19 18:56:05 字数 370 浏览 4 评论 0原文

鉴于这个(可怕的)对象图我无法更改,

public class Email
{
    public Email(string email) { ... }
    //DO a bunch of worthless stuff
}

public interface IPerson
{
    Email Email{get;set;}
}

这样的东西存在吗?

Map(p => p.EmailAddress).Use(s => new EmailAddress(s));

本质上,Person 接口不会接受字符串,而且我不拥有 Email 类,所以我无法修改它......

Given this (HORRIBLE) object graph that I can't change

public class Email
{
    public Email(string email) { ... }
    //DO a bunch of worthless stuff
}

public interface IPerson
{
    Email Email{get;set;}
}

Does something like this exist?

Map(p => p.EmailAddress).Use(s => new EmailAddress(s));

Essentially the Person interface won't take a string and I don't own the Email class so I can't modify it...

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

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

发布评论

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

评论(2

毁我热情 2024-08-26 18:56:05

不确定 Fluent NHibernate,但您可以创建自己的 IUserType ,它将从 Email 映射到 string,反之亦然。这非常简单:请参阅作为示例。

Not sure about Fluent NHibernate, but you can create your own IUserType which will map from Email to string and vice versa. It's real easy: see this for an example.

念﹏祤嫣 2024-08-26 18:56:05

它称为组件,对于映射值类型(如电子邮件地址)很有用。

It is called component and useful for mapping valuetypes like an emailaddress.

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