问题标签 [dblinq]

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

c# - .NET 4.0 + Linq + SQLite + DbLink - 我如何让它们一起工作?

我正在开发(或尝试开发)一个 C# 项目,该项目将数据存储在 SQLite 数据库中。我想使用 Linq 进行对象关系映射。根据我所阅读的内容,如果您下载System.Data.SQLitedblinq ,则可以将其与 SQLite 一起使用。

虽然它主要适用于从数据库中读取数据,但在尝试插入任何内容时会出现 SQL 语法错误。我检查了 Linq 正在尝试执行此类查询的日志:

它似乎是 MS Server 的 SQL 查询,而不是 SQLite。令人沮丧的是这个SqlProvider(Sql2008)。不应该用dblinq提供的东西代替吗?

我的数据库类如下所示:

连接字符串取自dblinq wiki

为什么它不起作用?是因为我使用的是 .NET 4.0 吗?有没有人成功使用过这样的组合?是否有另一种方法来替换 Linq 提供程序?

编辑:表映射:(虽然我怀疑错误在这里,因为读取表(使用 foreach 循环)似乎有效)

表之间的所有关系都被注释掉以进行测试(没有帮助)。然后使用以下代码插入一个元素:

0 投票
0 回答
931 浏览

mysql - 超过 2 个表 linq to sql join

我在使用 linq-to-sql 和 mysql db 连接超过 2 个表时遇到问题(它在 2 个表上工作正常):

这是代码

这是我得到的错误:对象引用未设置为对象的实例。”} System.Exception {System.NullReferenceException}

这应该是一个简单的查询,但我无法让它工作。有人猜猜可能是什么问题吗?

谢谢

0 投票
1 回答
2651 浏览

c# - 将 Linq 表达式传递给函数

我想将一个类的属性列表传递给一个函数。在基于属性列表的函数中,我将生成一个查询。与 Linq Select 方法中的功能完全相同。在这里,我将为 Ingress 数据库实现此功能。

举个例子,

在前端我想像这样运行一个选择,

我的实体类是这样的

我想像这样调用 Select 函数,

然后,使用结果我可以获得名称和地址属性的值。

我认为我的 Select 函数应该是这样的,

(*我认为这应该使用 Linq 表达式来完成。但我不确定输入参数和返回类型是什么。*)

这是尝试创建类似于 Linq 的功能。但我不是 Linq 表达式方面的专家。

麻省理工学院有一个名为DbLinq的项目,但它是一个大项目,我仍然无法从中获得任何帮助。

有人可以帮我开始这个吗,或者有人可以链接我一些有用的资源来阅读这个。

0 投票
1 回答
309 浏览

visual-studio-2010 - 在 IronPython 中使用 DbLinq

我正在尝试在 IronPython 应用程序中使用dblinq,但在开始时遇到了一些问题。尝试使用 clr.AddReference() 导入 dblinq 类时,它似乎看不到 dblinq。

我可以构建但不能访问库

1:我的 dblinq 源位于名为 Resources 的子文件夹中

clr.AddReferenceToFileAndPath("Resources/DbLinq.dll") => 找不到文件

clr.AddReference("DbLinq") => 无法添加对 dblinq 的引用

clr.AddReferenceToFileAndPath("C:/Development/DBLinq2/Dblinq.dll" => 成功

但仍然无法使用类from DbLinq import ...

解决方案

0 投票
1 回答
309 浏览

c# - DbLinq 的对象跟踪性能能提高吗?

我有一个通过 DbLinq 连接到 MySQL 数据库的 ASP.NET MVC2 站点。网站上会定期执行一组特定的操作,其中包括循环访问几个表中的一组特定记录并更新它们,以及在其他一些表中添加一些新记录。

我一直在用一组中等大小的数据进行测试。在我现在的特定测试集中,在更新时它最终会插入 44 个新行并更新 81 个其他行。但是我对 SubmitChanges() 的调用最终需要很长时间 - 大约 3-4 分钟,这似乎需要很长时间才能推动(我认为是)对数据库进行相对少量的更改。

我最终做了一些简单的分析,我发现问题似乎不在于在数据库上执行查询,甚至不在于构建查询。大多数时间似乎都被 UpdateEntity 内部对 AllTrackedEntities.ContainsReference() 的调用占用了。

为了给出一些实际数字,从最近的一次测试中我得到了:

  • SubmitChangesImpl 中的时间:204884 毫秒
    • UpdateEntity 中的时间:200908 毫秒
      • ContainsReference 中的时间:148173 毫秒
      • QueryBuilder.GetUpdateQuery 中的时间:685 毫秒
      • QueryRunner.Update 中的时间:28 毫秒
      • UpdateReferencedObjects 中的时间:49958 毫秒

如您所见,构建和运行 SQL 查询与检查是否存在对我们正在更新的实体的引用相比相形见绌(如果没有引用,则插入实体,尽管在这种情况下所有的更新实体存在)。虽然我理解为什么会发生这种情况,为了维护数据完整性等等,但这正在扼杀这些定期更新操作的性能。

我查看了将 ObjectTrackingEnabled 设置为 false,但这使得 DataContext 是只读的,这对我没有用 - 我的问题特别是更新的性能。

有什么办法可以提高更新的性能吗?就尝试在一次提交中推送 40-50 次插入和 80 多次更新而言,我是否以不太理想的方式使用 DbLinq?如果是这样,有没有更好的方法来解决这个问题?

0 投票
1 回答
81 浏览

postgresql - DbLinq "char" 特殊字符

我使用 DbMetal 工具为我的数据库生成一个类。它起作用了,但后来我在数据库中添加了一些“char”类型。现在,当我尝试生成类时,我得到了错误

有没有人遇到过这个?有解决方法或替代方法吗?

提前致谢!

0 投票
2 回答
1265 浏览

c# - Nullable 类型之间未定义 Equal和 Int32

我正在编写一个无聊的应用程序来管理患者及其临床病史。我将 SQLite 与 DbLinq 库和 DbMetal 代码生成实用程序结合使用。以下是从底层数据库中提取的生成代码中的两个类:

我使用以下代码向患者添加地址:

Database.Source 是在生成的代码中扩展 DataContext 的类的实例。在 SubmitChanges 上,我收到此异常:

“在 Nullable(Of Int32) 和 Int32 之间未定义相等运算符。”

消息不是逐字报告的,但意思是一样的。堆栈跟踪指向 DbLinq 代码,更准确地说是源文件 DbLinq.Data.Linq.DataContext.cs 的第 709 行。您可以在此处找到源文件:http: //dblinq.codeplex.com/SourceControl/changeset/view/16800#314775(在方法 SetEntityRefQueries(object entity) 的主体下)。我发现问题是在将外键值与表达式树中的常量进行比较时出现的,但我无法获得其他信息。你能帮我找到问题吗?

注意:在调用 SubmitChanges 之前,字段 address.PatientID(外键)实际上设置为正确的值。

0 投票
0 回答
160 浏览

c# - 无法使用 DbLinq 删除子实体

这个问题与我之前的问题有关。你可以在那里找到几乎所有的代码,除了这里报告的异常。我用 int 字段替换了可为空的字段,并且生成的代码将 null 我放在 -1 的位置。通过这种方式,我设法解决了 DbLinq 代码引发的恼人异常。但现在我不能删除子实体!特别是,我有一个与一些地址相关的患者。表 PatientAddresses 包含三元组中的所有地址(PatientID、Address、DomicileStatus),其中前两个成员构成表的主键。我写了一个测试来指出这个问题:

测试在指示的行失败。长话短说,即使我删除了一个地址,它也会保留在数据库中。我什至尝试删除相应的 PatientAddress 行,但无济于事。我尝试了三个或四个变体,但我无法删除患者的地址。用于生成这些表的代码如下:

我想不出避免这种行为的方法,谷歌也无济于事。

0 投票
1 回答
647 浏览

sqlite - 在 Windows 应用商店应用程序中使用 dblinq 到 SQLite 会通过商店验证吗?

我一直在试图弄清楚如何在 Windows Store 应用程序中获得一个体面的 LINQ 来访问 ORM 数据库我发现的只是 SQLite 和 sqlite-net NuGet 包。后者有点糟糕,因为我没有任何类似 .dbml 的结构来解析关系并提供导航属性以便于查询(那时不需要手动连接)。

我想知道:

  1. dblinq 与 SQLite 结合是否提供此功能?
  2. 使用它会通过 Windows 应用商店验证吗?

谢谢 !

更新:我在研究中使用的一些链接:

0 投票
1 回答
467 浏览

sqlite - DbLinq DbMetal - 添加外键时“字典中不存在给定的键”

这是我最初的 SQLite 数据库

如果我运行DbMetal /provider:Sqlite /conn "Data Source=bms4.db3" /dbml:Model.dbml,它将成功创建 dbml 文件。

但是如果我添加一个外键,这样

运行相同的命令

会给出这个错误:

如何将外键关系引入 DBML?