流畅的 NHibernate 映射

发布于 2024-11-25 01:02:40 字数 1123 浏览 2 评论 0原文

我的类 filter.cs 具有以下属性:

    public virtual int Id { get; set; }
    public virtual Attribute Attribute { get; set; }
    public virtual Int16 Type { get; set; }
    public virtual string FilterValue { get; set; }
    public virtual ReportConfiguration ReportConfiguration { get; set; }

Attribute 和 ReportConfiguration 是外键。

我做了这个映射:

        Id(a => a.Id).UnsavedValue(0).GeneratedBy.Identity();
        Map(a => a.Type);
        Map(a => a.FilterValue);
        References(x => x.ReportConfiguration).Column("IdReportConfiguration").Not.LazyLoad();
        References(x => x.Attribute).Column("IdAttribute").Not.LazyLoad();

此外,我有一个 Repository 类,例如其方法:

public int Create(Filter F)
    {
        int FilterId = 0;
        Transactional(session =>
        {
            FilterId = (int)session.Save(F);
        });
        return FilterId;
    }

当我进行 Create(Filter F) 的单元测试时,它产生了一个异常:

No persister for: .. ..Filter.cs

我认为映射不正确。

有什么想法吗?

谢谢并致以诚挚的问候。

I have the class filter.cs with this attributes:

    public virtual int Id { get; set; }
    public virtual Attribute Attribute { get; set; }
    public virtual Int16 Type { get; set; }
    public virtual string FilterValue { get; set; }
    public virtual ReportConfiguration ReportConfiguration { get; set; }

Attribute and ReportConfiguration are a Foreign Key.

I made this mapping:

        Id(a => a.Id).UnsavedValue(0).GeneratedBy.Identity();
        Map(a => a.Type);
        Map(a => a.FilterValue);
        References(x => x.ReportConfiguration).Column("IdReportConfiguration").Not.LazyLoad();
        References(x => x.Attribute).Column("IdAttribute").Not.LazyLoad();

In addition, I have a Repository class for example with the method:

public int Create(Filter F)
    {
        int FilterId = 0;
        Transactional(session =>
        {
            FilterId = (int)session.Save(F);
        });
        return FilterId;
    }

And when I did the Unit Test of Create(Filter F) it produced an exception:

No persister for: ....Filter.cs

I think the mapping is not correct.

Any idea?

Thanks and best regards.

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

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

发布评论

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

评论(1

早乙女 2024-12-02 01:02:40

在这里试试:

流畅Nhibernate 没有持久化:

从上面的帖子:

解决方案:出现此错误是因为该类不是公共的。只是改变
课程公开,这样的事情不会再发生了。但是,如果您不这样做
想要将程序集暴露在程序集之外您仍然可以标记
构造函数作为“内部”。

这是你的情况吗?


这是一个类似的问题:

Fluent Nhibernate No Persistor for Class Name

Try here:

Fluent Nhibernate No persister for:

From the above post:

Solution: This error occurs since the class is not public. Just change
the class to public and this won't occur again. However, if you do not
want to expose the assembly outside the Assembly you can still mark
the constructor as 'internal'.

Is this your situation?


This is a similar question:

Fluent Nhibernate No Persistor for Class Name

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