【问题标题】:How to generate Domain Service Class for Nhibernate?如何为 Nhibernate 生成域服务类?
【发布时间】:2012-05-10 08:29:17
【问题描述】:

我有一个 Silverlight 应用程序,它通过 WCF RIA 服务进行调用。我有引用实体框架和 Linq to SQL 的概念服务证明示例,但现在我的项目需要 NHibernate 而不是 EF 或 L2S。

如何添加一个使用已经生成的 NHibernate 类而不是其他框架之一的域服务类?

【问题讨论】:

    标签: c# .net silverlight nhibernate wcf-ria-services


    【解决方案1】:

    NHibernate 并没有真正强制执行一些特殊的类约定。 NHibernate 能够与 POCO 一起工作。更重要的是,如果您在 EF + Linq2SQL 和 NHibernate 之间进行了良好的设计更改,那么您的服务客户端应该是不可见的。

    【讨论】:

    • 我已经更新了我的问题,使其更加清晰。我没有使用 EF 或 L2S。我只是想说我有可以测试的工作示例,但确实需要迁移到 NHibernate
    • 好的,那你的问题是什么?您可以迁移到 NHibernate 恕我直言。
    • 我能找到的所有设置域服务类的示例都涉及将其指向 L2S 或 EF 模型,然后让它为您自动生成服务调用。由于我是 WCF 新手,我不确定如何手动或自动创建使用 NHibernate 而不是 EF 或 L2S 的域服务。
    • 如果我看一下msdn.microsoft.com/en-us/library/hh556025(v=vs.91).aspx 这样的示例,它会说选择产品和类别进行代码生成。这些类与 NHibernate 看起来几乎相同(您需要将字段标记为虚拟 - 仅此而已)。
    • 但是,它还说:NWDomainService 类公开 ProductDbContext 类上的实体,而 ProductDbContext 类又派生自 DbContext 基类,因此您必须尝试自己动手。
    【解决方案2】:

    找到了一个使用 NHibernate 的域服务的 working example 和一个快速的 walk-through,用于从头开始创建一个基本的空域服务。

    此外,您返回的服务中的任何对象都必须在属性上具有 Key 属性,否则将不会生成 Silverlight 端的 Web.g.cs(生成的代码)文件,您将无法调用,不会在数据源窗口等中看到。

    【讨论】:

      猜你喜欢
      • 2021-07-31
      • 2016-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-12
      • 2014-06-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多