问题标签 [domainservices]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
865 浏览

asp.net-mvc - 在 Web 应用程序或域层内的 Asp.net mvc 应用程序中记录错误?

我只想知道什么是最佳实践/广泛使用,我目前在域服务层进行日志记录,但是在我的 Web 应用程序层中发生的任何事情都不会被记录。

我想要一个集中且简单的位置来完成我所有的创建/删除/更新日志记录...

我听说过 Elmah,不确定它仅对域服务层日志记录有多大用处……

我目前根本不使用任何日志框架,我只是将我的日志消息字符串生成器或获取异常并将其刷新到数据库中......这是最好的方法吗?

如果重要的话......我需要使用 Ninject 注入我的 ILoggingService

注意:我不是在谈论记录用户活动......它肯定只会驻留在我的域服务层内......

0 投票
1 回答
297 浏览

c# - 限制某些用户的服务的最佳方法是什么

编辑:改写和简化的问题要简洁......

在我的服务层中,我有类似的东西

我的系统上可以有各种类型的用户,例如客户/供应商等...

此服务仅适用于所有类型的用户,但是实现仅对选定用户可用的服务的最佳方式是什么,例如

通常,这些方法将在一个名为MessagesService的类中

注意:为了澄清,用户已登录并经过身份验证,但是我想知道我是否应该这样编写我的方法:

基本上获取每个操作的用户详细信息,并以更强类型的方式调用方法......

编辑2:

请注意,我的域层与我的 Web 应用程序位于单独的类库中,“客户端用户”将成为“客户端”的一部分,同样,“供应商用户”将成为“供应商”的一部分 - 所以如果我想查询我的服务层并调用正确的代码(即检索正确的详细信息) - 我必须传入用户 ID 或用户的强类型类,我看不到 DTO 对象上的约束如何表示谁可以访问服务不正确/易碎?

否则我会有这样的事情:

用户由 asp.net 处理,因此我们知道用户可以访问此操作,但是如果有多个客户端怎么办?当然,我们必须传入一些客户端 ID/如果我要传入用户 ID,我可以从中获取客户端 ID...

相反,我会说我的域层不正确,看到类似上面的签名......

编辑 3: 我能想到的唯一其他选择是,当用户进行身份验证时,将使用存储在 asp.net mvc 应用程序内名为 UserSession 的类中作为全局状态,然后使用 DI(ninject)将其注入我的域服务层,因此当我的签名可以

实现此接口的域服务类可以是:

0 投票
1 回答
564 浏览

c# - 如何将多个 WCF RIA 实体类型转换为单一类型以在 ViewModel 中使用

抱歉,如果有太多/不够详细或其中一些无关紧要,这是我在此板上的第一篇文章:

背景

我目前正在使用 VS2010 在 C# 中开发基于 Silverlight 4 和 WCF RIA (SP1) 的应用程序。堆栈是:SQL Server -> nHibernate -> 域服务 -> 服务代理 -> Silverlight 4 Client (MVVM)

我在数据库中有 4 个表,每个表中都有相同的字段,每个表都包含相同数据的不同“类型”。

数据实际上应该在一个带有类型列的表中,但它是一个我无法更改的旧数据库。

我为每个表创建了一个 POCO,并创建了一个域服务来处理访问和更新四个不同的实体集。这些类型被投射到 Silverlight 客户端,并且所有 CRUD 内容都按预期工作。

问题

我有一个视图模型,其中包含一个 ObservableCollection,其中 T 是 4 种实体类型之一,但是我不想使用 4 个集合来保存不同的实体类型。UI 将允许用户选择一种类型,我想使用相同的集合和 UI 绑定来编辑该数据。

我试过了

  • 创建通用域服务,但不支持它们。

  • 让服务器端实体类型继承自抽象类或实现接口,但域服务不投射抽象类或接口。

  • 为实现客户端接口的 4 个投影实体创建客户端部分类。但是,当我尝试分配ObservableCollection<MyEntity>给我时,ObservableCollection<MyEntityInterface>我得到以下错误:

Cannot implicitly convert type 'System.Collections.ObjectModel.ObservableCollection<BusinessDomain.StandardInterestRate>' to 'System.Collections.ObjectModel.ObservableCollection<BusinessDomain.IInterestRate>'

我怀疑原因是 StandardInterestRate 继承自 RIA Entity 类。任何想法表示赞赏。

0 投票
1 回答
677 浏览

silverlight - 使用 DomainCollectionView 和自定义 DomainService 无法正确显示分页项目

我正在开发一个 RIA 服务应用程序,但在服务器端分页和 DataGrid 中分页项的显示方面存在问题。我正在使用自定义 DomainService,其中 PageIndex 和 PageSize 通过 Query 以及几个过滤器参数传递。

问题是我的第一页结果显示正确,但是当我翻到下一组结果时,我的项目被添加到列表的末尾,而不仅仅是显示从服务器返回的新结果。即,我的 DataGrid 正在显示从服务器返回的所有累积对象,而不仅仅是显示返回的最新结果页面。

首先,我使用的是 DomainCollectionView 和 DomainCollectionViewLoader:

然后我有相当标准的 Load() 和 LoadComplete() 方法:

请注意,我在 PortalCountAll 方法返回时分配了 TotalItemCount。

为了完整起见,我的 DomainService Query 方法的签名如下:

我认为问题在于我如何设置 _entityList 以及在 LoadComplete() 方法中分配结果:

似乎在所有基于 LINQ 的示例中,此分配似乎只允许在 DataGrid 中显示当前结果。由于某种原因,使用自定义查询方法时似乎并非如此。

我想知道更改页面时清除 DataGrid 的首选方法是什么?我知道我可以在查询之前调用 _context.PortalStudies.Clear() 来清除结果,但这会导致页面上的项目闪烁,并且在查询从服务器返回之前不会再次填充。使用自定义 DomainService 时仅显示当前结果页面的正确方法是什么?

0 投票
0 回答
281 浏览

silverlight - 实体类型由多个域服务类型公开?

我尝试运行旧的 silverlight 应用程序,并使用与同一数据库的新连接重新创建 ADO.NET 连接。

我面临的问题是我不断出现错误,我无法修复它。也许社区将能够知道?

这是调试时的错误列表截图。我没有更改应用程序中的任何域服务。

在此处输入图像描述

0 投票
4 回答
1484 浏览

c# - Silverlight RIA DomainService,表中有 200 万行

我正在做一个从 oracle 数据库读取的项目。我使用了 Silverlight RIA 和自动生成的 DomainService,因为我不太关心结构化,因为我只担心显示数据。

我的问题是,当我使用 XAML 中的 domaindatasource 并使用 fiddler 调试 WCF 服务及其调用时,useraccounts 表中的第一组数据包含 200 万行,并且 DomainService 超时。

现在我尝试将服务的超时时间增加到 20 分钟,但仍然无济于事,我收到错误消息:

查询“GETUA_USERACCOUNTS”的加载操作失败。http 请求已超过分配的超时时间

在我使用的总共 9 个表中,3 个表有大约 200 万行,解决这个问题的最佳方法是什么?

0 投票
1 回答
187 浏览

silverlight - 如何在现有 Ria 服务中生成新的表相关代码而不删除它

如何在现有 Ria 服务中生成新的表相关代码而不删除它。请建议最佳实践。我有一个域服务。我修改了很多自动生成的代码和元数据。现在我想包含更多表自动生成的代码而不删除它。

0 投票
0 回答
373 浏览

wcf - 不符合调用操作所需的签名

好的,我有一个只有 2 种方法的域服务类:

CT1 和 CT2 都是复杂类型,具有多个 int 和 string 字段。

GetActiveCT1 和 GetCT2 都是基于存储过程的函数导入。

问题是,方法#2 GetCT2 总是返回关于“不符合所需签名”的错误。如果我将 [Invoke] 更改为 [Query] 那么它可以工作,但方法 #1 没有同样的问题。

我非常不解,为什么 2 种复杂类型的行为会如此不同?

0 投票
0 回答
258 浏览

wcf - 哪个提供更好的性能:WCF RIA 服务或域服务?

我正在构建一个新的 SV 应用程序,它将在 Internet 上使用。我希望
一次有几个用户,所以我需要良好的性能。

哪个更好用:

  • 从 0 个 WCF RIA 服务构建或
  • 使用域服务?

在 WCF RIA 上,我可以为 ConcurrencyMode 设置服务行为,但对于域服务,我找不到任何相关信息。

另外我对此有点陌生,所以要温柔:)。

0 投票
1 回答
959 浏览

ria - 带参数 LightSwitch 的 RIA DomainService 查询

我正在尝试在 LightSwitch 中使用 RIA 服务,但是当 DomainService 中的查询具有参数时出现错误,因为该查询未导入 LightSwitch。

所有其他查询都很好。

在向导窗口中附加数据源时出现的错误是

查询“AllRecordsbyId”中的参数“ID”不是可为空的类型。不会导入此查询。