【问题标题】:Success with WCF Data Services (OData) with NHibernate?WCF 数据服务 (OData) 与 NHibernate 的成功?
【发布时间】:2011-03-18 11:15:30
【问题描述】:

我正在开发一个 CQRS 风格的系统,该系统使用 NSericeBus 处理的命令和通过只读 OData 提要提供的查询。

我们希望 WCF 数据服务提要由 NHibernate 提供支持,这样我们就可以控制我们的数据在提要中的显示方式(计算字段等),而实体框架提供者不允许这样做。

但是,在使用 Linq to NHibernate 的反射提供程序时,当我们导航到相关实体(例如,http://server/feed/Foo(1)/Bar)时,我们会遇到错误。

有没有人让 Linq to NHibernate 支持的 WCF 数据服务工作?

【问题讨论】:

    标签: nhibernate linq-to-nhibernate odata wcf-data-services


    【解决方案1】:

    你的意思是,你想做一些实体框架不允许的事情?

    如果您需要计算字段,您可以使用计算字段在数据库(SQL Server?)中定义一个视图,并将该视图合并到您的只读实体模型中。

    如果您需要预先计算字段,只需在非规范化代码中进行即可。

    您需要哪些使用 EF 无法实现的场景?

    【讨论】:

    • Roy,想象一个表,其中包含一个名为“Duration”的列,对应于 C# TimeSpan。它的值以刻度的形式存储在数据库中(百万分之一秒,对用户不太友好)。我想介绍一个名为“DurationInMinutes”的专栏,它将持续时间转换为分钟。
    • 您可以在视图中轻松做到这一点。然后您的视图将包含类似 SELECT X, Y, Duration / (60 * 10 * 1e6) AS DurationInMinutes, Z FROM ... 然后您可以像查询真实表格一样查询您的视图。
    【解决方案2】:

    最像您要查找的是NHibernate.OData。这允许您获取传入的 odata 并让 NHibernate 自动将其转换为 DetachedCriteria 实例。

    【讨论】:

    • 贾斯汀,我正试图走另一条路……从 NHibernate 创建一个 oData 提要。我不再使用 oData 或 NHibernate(取而代之的是 RavenDB),生活变得更好了!
    猜你喜欢
    • 2011-11-20
    • 1970-01-01
    • 2019-12-28
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 2013-11-17
    相关资源
    最近更新 更多