问题标签 [insight.database]

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 回答
235 浏览

c# - Inisght.Database 自动存储库和自定义列映射

我正在尝试在一个项目中实现 Insight.Database,并且在尝试利用自动接口实现并将对象属性映射到数据库中的奇数列名时遇到了障碍。

我有以下结构......

我的数据库看起来像......

表:员工(员工代码,[姓名])

表:假期(VacationId、VacationDate、EmployeeCode、ApprovedByEmployeeCode)

视图:VacationsView(所以我不必一遍又一遍地编写[和更改]相同的 SELECT)

存储过程:GetAllVacations

最后,使用 Insight.Database,我试图拥有一个接口,该接口将自动填充我的对象并告诉它如何将存储过程中的不同列名用于“员工”属性。

这有效(因为没有错误)并且我的假期的所有属性都已正确映射,但我的两个“员工”属性为空(正如预期的那样,因为列名不符合员工对象的属性名)。我想不通的是如何告诉 Insight“使用 CreatedBy ..”字段来构建“员工”属性和“审批...”字段来构建“ApprovedByEmployee”属性。

我已经能够使用带有回调和 columnOverride 的 OneToOne 来完成它,然后使用标准 Query()。IE。

但是,我真的在尝试利用 Insight 的自动界面功能。

我正在尝试做的事情可能吗?

0 投票
1 回答
263 浏览

c# - 使用 Prism 7 和 Unity 进行参数注入

我使用 Jon Wagner 的 Insight.Database 作为我的微 ORM,这意味着我的(数据库)接口没有具体的实现。

我正在尝试将其中一个接口注入到我的 Prism 7 MainWindowViewModel 中,只是为了查看数据库是否存在(在这个阶段 - 显然,我稍后会做更多)。

然而,要么是新的 Unity 把事情搞砸了,要么 Prism 不喜欢我这样做的方式。在过去只有 Unity 的日子里,使用以下代码并不完全是一种乐趣,但相当不错 -

但这是不同的。我承认我是 Prism 的新手,但 IContainerRegistry 上没有任何类似的功能。

通过使用

我可以获得基本容器,但这也发生了变化,它遵循其前辈的标准,避开带有示例的体面文档,所以我最好的近似值是这个,至少可以编译。

这可以编译,但绝对不会注入。当 AutoWireUp 尝试实例化 MainWindowViewModel 时,我遇到了运行时错误。

任何人都可以指出我的答案或有用的资源吗?

0 投票
1 回答
149 浏览

c# - 子类上的 Insight.Database [BindChildren] 不起作用

我正在使用insight.database我的 c# 项目。我有一个有子类的类。我在我的 SP 中使用内部连接来展平并获取我的字段。但是,我希望一些查询结果字段映射到我的子类。它没有像我预期的那样工作。我曾尝试分别在父类和子类上使用 BindChildren 属性,然后同时使用,但这些都不起作用。父类正确映射,但没有为子类属性分配值。有人可以让我知道我做错了什么吗?

SQL (spGetUserById):

仓库界面:

父类:

子类:

0 投票
1 回答
53 浏览

insight.database - 如何使用 Insight 数据库为属性指定用户定义的表类型

我有一个非常简单的存储过程来更新一堆记录的状态值。我发送了一个未知值的记录 ID,它可以工作。

我喜欢使用 Insight.Database,如果可能的话,我不想使用其他任何东西。

问题是我们的 DBA 创建了多个用户定义的表类型来处理情况。但是它们的命名约定是相同的。

我们有一个 [IntTable] 列 [IntValue] 和另一个 [TinyIntTable] 列 [TinyIntValue]

Insight 似乎检查了可以工作的 UDT 类型。有时它会选择 [TinyIntTable] (我猜是因为要发送的数组中的值都小到可以放入 tinyInt。但是 [TinyIntTable] 与存储过程不兼容。我该如何强制 Insight.Database总是使用 [IntTable]?

是否有我可以在我的 c# 对象定义中使用的属性?

0 投票
1 回答
36 浏览

insight.database - 出现错误“Insight.Database.FastExpando”不包含“Set1”的定义

以下代码给出了上述错误,我不知道为什么:

多年来,我一直在使用 Insight.Database 的其他功能,但不必在检索记录集的同时检索 SQL RETURN 值。SQL 本身在 SSMS 中正常工作,返回结果集和 RETURN 值 0,正如预期的那样。这发生在 VS2019、.NET 4 和 .NET 4.5.2 中;Insight.Database 5.2.7 和 5.2.8。

我从以下页面获得了此代码: https ://github.com/jonwagner/Insight.Database/wiki/Specifying-Result-Structures 其中显示了这一点:

我从这里结合了以下代码: https ://github.com/jonwagner/Insight.Database/wiki/Output-Parameters

那部分有效。它正在访问失败的 .Set1,我不知道如何找出原因。我没有使用 FastExpando 课程的经验,但 Jon 承诺了魔法,我愿意相信。谢谢你的帮助。