问题标签 [mdriven]

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 投票
1 回答
33 浏览

mdriven - 在多数据库租户 Web 应用程序中访问模型类的派生属性时出现问题

我有 2 个应用程序 Web 和桌面。两者共享持久层。在持久层中,我们有一个由 Web 和桌面应用程序共享的 Ecospace 对象。Web 在 MVC4 上使用 Angular JS,桌面是 winform 应用程序。两者都在 .net 4.6.2 框架上。我们想在一个通用的 Web 应用程序上实现多个数据库。每个组织只有一个要连接的数据库,但都共享通用的 Web 应用程序来访问其数据或数据库。

问题:

1 我是否应该在我的登录页面中创建生态空间对象并将其存储以在其他页面中使用。
或者我应该如何处理生态空间。

2 我想在登录页面中连接到基于组织的数据库,登录用户在上下文组织中所属的组织具有不同的数据库并具有通用的 Web 应用程序。

我必须考虑这些问题,因为在我的 EcoModel 中,我有基于当前组织的派生属性,并且必须设置它以便这些派生属性计算数据,否则它将全部为空或默认类型返回。

请有任何建议

0 投票
0 回答
62 浏览

winforms - 派生成员、关联在使用 CurrencyManagerHandle、ExpressionHandle 时在 WinForm 中被调用而不被访问

我们在派生属性/关联方面遇到了重大问题,在没有被 Windows 应用程序前端使用 ExpressionHandle、CurrencyManagerHandle 访问的情况下被调用。

我们被迫将 AddDefaultProperties 标记为 false,并手动将表单上的所有必需属性添加到 ExpressionHandle、CurrencyManagerHandle。

这些不必要的调用使整体性能非常差。此外,迁移到 Windows 窗体的 ViewModels 也不是一个可接受的解决方案,因为我们已经拥有一个产品,该产品具有 300 多个使用多个排列和组合 ExpressionHandle、CurrencyManagerHandle 的窗体。

某些具有 100 多个派生关联和属性的顶级类仅加载基本表单就需要 20 多分钟,而我们仅访问 8-10 个持久属性。

谢谢,Kshitij。

0 投票
1 回答
21 浏览

mdriven - MSSQL InvalidCastException - 文本类型的属性问题 - 无法转换为 Micosoft.Data.SqlClient.SqlParamater

在此处输入图像描述

安装了最新的 MDriven 版本并进行了一些其他更改,现在我的 MDriven 无法将文本属性保存到 MS SQL Server。请参阅下面的错误消息。演示项目有 Class1.Attribute1 是 Attribute1:Text。

0 投票
1 回答
29 浏览

mdriven - 约束 - 受约束的目标

我有一些 DroopyEyes 代码期望 ConstrainedTargetName 不为空。但是,我遇到问题的约束处理的是关系而不是属性。ContrainedTarget 下拉列表仅列出属性。

“约束目标”的意义和用途是什么?

TIA 史蒂夫 AU

0 投票
2 回答
47 浏览

mdriven - 使用 ModelDrivenControllerBase 调用 MDrivenEcoSpaceAndModelForNetStandard 时出现 ESType 错误

MyController:ModelDrivenControllerBase<EcoProject1EcoSpace>mvc 或 webapi netcore 项目中的代码显示错误"the type 'MDrivenTemplateProj.EcoProject1EcoSpace' cannot be used as type parameter 'ESType' in the generic type or method 'ModelDrivenControllerBase<ESType>'. There is no implicit reference conversion from 'MDrivenTemplateProj.EcoProject1EcoSpace' to 'Eco.Handles.DefaultEcospace"+ 烦人的add ref to the 'MDriven.Handles.netStandard, version=7.0.0.0, culture=neutral, publickeytoken=null'. (始终是 7.0.0.0 版!
您能否告知如何避免此类错误?
我正在尝试使用 NetFramework 4.x 开发具有参考 MDrivenEcoSpaceAndModelForNetStandard 项目的 webapi netcore 3.1 应用程序。经验。
似乎对于 netcore 项目来说这是错误的方式。
谢谢!

0 投票
1 回答
42 浏览

mdriven - 自定义服务中调用 AsTajson 的派生属性

我使用 nuget 的 .net5 和 .netStandard。解决方案的结构很简单——带有ecomodel和webapi项目的类库。我已经在 EcoSpace1.cs 中注册了自定义服务,正如很久很久以前生态大师所建议的那样。

由于 Swashbuckle.AspNetCore (swagger) 的使用,webapi 项目的控制器的规则 - 从 Controller 类继承。如果我从 ModelDrivenControllerBase 继承控制器,Swagger 会显示错误

但上面的代码没问题,GET 完美运行:

}

在我尝试将另一种方法添加到 IMyService 并获取 json 之前,它一直有效。我通过使用 DerivationOcl 将派生属性添加到 Class1 来尝试 AsTajson。

或者

在 MyServiceClass 中,Get 的实现是:

如果我尝试获取此值 - 异常:

获取 TaJson 返回值的正确方法(或 EcoService?)是什么?

0 投票
1 回答
56 浏览

mdriven - AppCompleteGenericCore > 1Gb 内存

Local MDrivenServer (cmd: AppCompleteGenericCore.exe -port=5050 -nohttps) 的监控表明,无论模型大小如何,该进程都会占用高达 1.2Gb 的内存。
如果我使用 Class1 和 Class2 上传最简单的示例模型,没有视图模型,没有服务器端作业 - AppCompleteGenericCore 进程内存从 60Mb(没有模型)开始并稳定在 ~1.2Gb(上传了示例模型)。你能告诉我这是正常的行为吗?仅供参考,我在 AppCompleteGenericCore.runtimeconfig.json 中尝试过 "System.GC.Server": false, "System.GC.Concurrent": false - 没有结果。

谢谢!

0 投票
0 回答
54 浏览

mdriven - VS2022 社区上的 MDriven 框架设置 - 'EcoVsPackage' 包未正确加载

您能否建议在 VS 2022 社区版上设置 MDrivenSetup_7.0.0.xxxxx_Nightly_vs2017.exe 后如何修复此错误?重新启动没有帮助。VS 很干净,没有其他扩展。
非常感谢!

0 投票
1 回答
31 浏览

mdriven - PSQuery 性能

我有以下模型:

其中 B 是 B1 和 B2 的抽象超类。我现在有一个 PSQuery,例如:

var data = es.PSQuery<A>().Where(..).SelectMany(x => x.Bs).ToList();

生成的 SQL 如下所示:

SELECT ALIAS.ID FROM B ALIAS WHERE ....

然后 MDriven 获取块中的所有鉴别器以确定对象的类型,因此这些可以是一些 SQL:

SELECT ALIAS.ID, ALIAS.DISCRIMINATOR FROM B ALIAS WHERE ID in (?, ? ....)

现在 MDriven 知道类型并可以加载数据。总而言之,这个过程比手工 SQL 花费的时间要长得多。所以我的问题是:

  1. 我可以从 PSQuery 获取 SQL 以便我自己执行它吗?在这种情况下,我构建了一个非常复杂的表达式,我更喜欢构建 PSQuery 来构建 SQL 字符串。
  2. 如果 MDriven 将在第一个 SQL 中加载描述符,则不需要延迟加载。我们为此表使用自定义 OR-Mapping。是否可以将鉴别器包含在第一个 SQL 中?
  3. 是否有不同的提示来防止这种耗时的加载行为(保持模型不变)?
0 投票
1 回答
64 浏览

asp.net - MDriven ECO_ID 重复

MDriven 为多个对象生成相同的 ECO_ID 似乎存在问题。在大多数情况下,它似乎与意外的进程关闭和/或服务器关闭一起发生,但它也确实发生在正常活动期间。

我们的系统由一个 ASP.NET 应用程序和一个 WinForms 应用程序组成。ASP.NET 应用程序在 IIS 中设置为使用单个工作进程。我们混合了 WebForms 和 MVC,包括 ApiControllers。我们使用的是相当旧的 ECO 包版本:7.0.0.10021。我们在 VS 2017 上,目标框架是 4.7.1。

我们将其配置为使用 64 位整数作为对象 id:s。数据库是火鸟。SQL 配置设置为使用 ReadCommitted 事务隔离。

据我所知,我们已经配置EcoSpaceStrategyHandlerEcoSpaceStrategyHandler.SessionStateMode.Never,这应该意味着 EcoSpaces 根本没有被重用,对吧?(为什么我什至会EcoSpaceStrategyHandler在这种情况下使用,而不是使用new关键字正常创建 EcoSpace?)

我们已经创建了用于所有控制器的类MasterController : ControllerMasterApiController : ApiController这些具有EcoSpace简单地执行此操作的属性:

即,如果没有创建策略处理程序,则创建一个指定生态空间不进行池化和会话状态持久化的处理程序。然后,如果没有获取生态空间,则从策略处理程序获取一个。返回生态空间。这是一种可接受的方法吗?为什么会比简单地这样做更好:

在 aspx 中,我们有一个母版页,其中包含EcoSpaceManager. 它已被配置为使用一个池,但SessionStateMode它是Never. 它已EnableViewState设置为true。这可以接受吗?这是否意味着 EcoSpaces 将在往返之间汇集但停用?

我们可能会连续收到多个传入的 API 调用,因此一个 API 调用在下一个调用之前尚未完成。我假设这意味着多个实例MasterApiController可以同时执行但在不同的线程中。当然也可能有MasterController执行 MVC 请求的实例,并且 WinForms 应用程序可能正在运行一些批处理作业或其他。

但据我了解,id 预订是在任何UpdateDatabase通话开始时进行的,方式如下:

如果返回值为 K,这将保留 N 个新的 id:s,范围从 K-N 到 K-1。在任何地方使用 ReadCommitted 事务应确保更新锁定 id 数据行,强制所有并发保存操作等待,然后获取在不受其他事务干扰的情况下更新结果,然后提交。此时,任何其他挂起的保存操作都可以继续进行自己的 id 保留。我看不出这会如何导致多个对象使用相同的 ID。

我应该注意到,它似乎有时会在一个单独的 UpdateDatabase 中产生 id 重复,即当保存一组新的相关对象时,其中一些最终具有相同的 id。我还没有真正证实这一点。

有什么想法可能会在这里发生吗?我应该寻找什么?