是否可以通过 WCF 在 Silverlight 中移植和使用 Nhibernate CriteriaAPI

发布于 2024-11-25 08:02:43 字数 468 浏览 1 评论 0原文

我打算在 Silverlight 项目中编写并使用某种标准 API 将复杂的动态请求传递给 WCF 服务。

起初我考虑使用 QueryObject 像: 用户查询 {int?最小年龄;整数?年龄最大;字符串名称包含; string NameStartWith;} 等等,如果某个属性不为空,那么我们对其使用某种过滤器,但是逻辑运算符又如何呢? (和或)我无法使用 QueryObject 指定此逻辑。

所以我打算用谓词生成器编写某种标准 API,它结合了 AND、OR 表达式,但我已经在服务器端使用 NHibernate 标准 API,为什么不在 Silverlight 类库中将其从 Nhibernate 中剥离出来呢?我在互联网上没有找到关于在 Silverlight 中使用 NHibernate 标准 API 的证据,这有点奇怪,不可能将其从 Nhibernate 中剥离出来,或者它没有任何意义?为什么不使用?对我来说,这看起来是一个很好的解决方案,比编写自己的 API 更好。

I was going to write and use some kind of criteria API in Silverlight project to pass complex dynamic requests to WCF service.

At first I thought about using QueryObject like:
UserQuery {int? AgeMin; int? AgeMax; string NameContains; string NameStartWith;} etc if some property is not null than we use some kind of filter on it, but what about logic operators? (And Or) I have no way to specify this logic using QueryObject.

So I was going to write some kind of criteria API with predicate builder which combines the AND, OR expressions, but I already using NHibernate criteria API on server side why just not to rip it out of Nhibernate in Silverlight class library? I found no evidence in Internet on using NHibernate criteria API in Silverlight, this is kinda strange, it's not possible to rip it out of Nhibernate or it makes no sense? Why is it not used? To me it's looks like a good solution, better than coding your own API.

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

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

发布评论

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

评论(2

私野 2024-12-02 08:02:43

在客户端构建查询不是一个好主意

  1. 包含查询构建器并允许用户在客户端编写自定义复杂查询的 3d 方 DataGrid 控件(Telerik、DevExpress、Infragistics)怎么样?

  2. RIA 服务怎么样,它公开数据库查询接口。

这听起来像是陈词滥调。人们只是不断地重复它,因为他们在某个地方读过它,但他们不知道为什么。

我不同意这一点,我认为在客户端编写自定义复杂查询的能力是面向数据的业务线应用程序的合理要求。

building queries on the client is not a good idea

  1. What about 3d party DataGrid controls (Telerik, DevExpress, Infragistics) that contain query builders and allow user to compose custom complex queries on client side?

  2. What about RIA Services, that exposes database query interface.

This sounds like cliche. People just constantly repeat it because they read it somewhere, but they don't know why.

I disagree with this, I think the ability to compose custom complex queries on client side is a reasonable requirement for data oriented Line Of Business applications.

三生池水覆流年 2024-12-02 08:02:43

添加到同行的答案 - 获取在客户端构建的查询永远不是一个好主意。在 Intranet 或任何其他类型的应用程序上。
QueryObjects 是可行的方法。
您可以在客户端创建表达式(例如 (Name like '%blah' or LastName like 'something') and Id > 5),并在服务器端使用 .net 的 < a href="http://msdn.microsoft.com/en-us/library/bb397951.aspx" rel="nofollow noreferrer">表达式树(另请参阅此处此处),或实现您自己的引擎(总体思路)。

to add to peer's answer- it's never a good idea to get queries which are constructed on client-side. on intranet or any other kind of application.
QueryObjects are the way to go.
you can create the expression on the client side (such as (Name like '%blah' or LastName like 'something') and Id > 5), and on the server side- use .net's expression trees (see also here and here), or implement your own engine (general idea).

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