【问题标题】:overrides ToString() of a POCO used by NHibernate覆盖 NHibernate 使用的 POCO 的 ToString()
【发布时间】:2023-03-30 07:33:01
【问题描述】:

如何在用作 NHibernate 模型实体的 POCO 对象中覆盖 ToStringmethod? 要覆盖 object.ToString() 你应该声明类似

public override string ToString()
    {
        return "my string here";
    }

但是 NHibernate 希望 POCO 映射对象中的所有内容都是虚拟的……而且您不能声明一个既是虚拟广告覆盖的方法。

有什么建议吗?

【问题讨论】:

    标签: c# nhibernate poco


    【解决方案1】:

    您要覆盖该方法的事实意味着它是虚拟的,应该没有问题。

    【讨论】:

    • 真的。我不知道发生了什么,但是我收到一条 NHibernate 错误消息,说该方法必须声明为虚拟的……现在我再次尝试,消息消失了……可能我的代码中还有其他问题
    【解决方案2】:

    重写 ToString 的原因是什么?是为了调试目的吗?如果是这样,虽然这实际上并不能回答您的问题,但您可以查看Debugger Attributes

    【讨论】:

      【解决方案3】:

      我的 C# 和 NHibernate 都有点生疏,但我相信

      public virtual string ToString()
      {
          return "my string here";
      }
      

      是完全有效的代码。

      然后生成的代理应该使用提供的 ToString 实现

      【讨论】:

      • 这样你是在隐藏 Object.ToString(),而不是覆盖它
      猜你喜欢
      • 1970-01-01
      • 2013-06-12
      • 2010-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 2012-09-15
      相关资源
      最近更新 更多