问题标签 [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 回答
4375 浏览

sqlite - 我如何将 DBLinq >> DBMetal 工具与 sqlite 一起使用?

请提供命令行工具 dbmetal 的示例,以从 sqlite 数据库生成代码文件。

0 投票
1 回答
470 浏览

c# - 删除后立即将对象重新插入数据库(DbLinq)

我有一个 MySql 数据库,其一般结构如下所示:

我正在使用 InnoDB 来允许外键,并且所有指向 a 的外键ProbeDefinition都有 set ON DELETE CASCADE

我遇到的问题是,当我ProbeDefinition在代码中删除 a 时,它会立即重新插入。级联删除正确发生,因此其他表被清除,但似乎 LINQ to SQL 可能无缘无故地发送插入。检查数据库上的 ChangeSet 属性显示 1 个删除,并且没有插入。

我正在使用以下一小段代码来执行删除:

MySql 中的日志显示运行时正在执行的以下命令:

什么可能导致这种不必要的INSERT?请注意,Manufacturer以完全相同的方式删除 a 会正确删除,并带有以下日志:

编辑:经过进一步测试,这似乎只发生在我用ProbeDefinitions 列表填充 ListBox 之后。

我尝试在运行以下代码段之前和之后运行上述删除代码:

该对象在所述代码运行之前被正确删除,但在此之后的任何时间,它都会在删除之后执行插入。它不喜欢对象在某处被引用的事实吗?

这是我正在运行以测试从中间窗口中删除定义的代码:

0 投票
2 回答
4955 浏览

c# - dblinq 有多成熟?

我正在开发一个需要与数据库通信的应用程序。该应用程序是用 C# 编写的。我很喜欢 LINQ 和自动生成类来表示数据库及其表,所以首先我考虑使用 SQL,因为 .NET 仅支持 LINQ to SQL。现在我更倾向于 MySQL,主要是因为扩展 SQL 服务器可能会变得昂贵,而且因为我公司内的人更熟悉 MySQL,包括我在内。这就是 dbLinq 的用武之地。从我读到的内容来看,dbLinq 对于简单的查询效果很好,但可能会在更复杂的查询上失效。您能分享您使用 dbLinq 的经验吗?dbLinq 是否仍应被视为实验性的,还是我可以期望在没有很多问题的情况下使用它?

谢谢,巴斯

编辑:

我读到 DbLinq 不能处理多个外键,任何人都可以评论这是否仍然如此吗?

0 投票
4 回答
343 浏览

c# - ORM 是否有任何方法可以确定 SQLite 列是否包含日期时间或布尔值?

我一直在考虑在我的下一个项目中使用 SQLite,但我担心它似乎缺少适当的datetime数据bit类型。

如果我使用 DbLinq(或其他一些 ORM)生成 C# 类,属性的数据类型会被“简化”吗?日期时间数据是否会放置在 typestring或的属性中double?布尔数据是否会放置在 type 的属性中int

如果是,有什么影响?我正在设想一个场景,我需要编写具有更具体数据类型的整个第二层类,并进行大量转换和强制转换,但也许它没有我担心的那么糟糕。如果您对这种情况或类似情况有任何经验,您是如何处理的?

0 投票
1 回答
902 浏览

database - DbMetal 在 SQLite 中重复外键引用时窒息 - 有什么想法吗?

我一直在努力让 DbMetal 处理我的 SQLite 数据库。我终于把问题隔离了。它不允许一个表对同一列有两个外键引用。

例如,具有这两个表的 SQLite 数据库将失败:

我收到此错误:

DbMetal:序列包含多个匹配元素

如果我摆脱第二个外键引用,则不会发生错误。

所以,这有效:

但我真的需要两个“人”列来引用人表。

我为此提交了一份错误报告,但同时我可以使用一种解决方法。有任何想法吗?

0 投票
2 回答
806 浏览

c# - 你如何投射一个 LinqToSql 表作为表TEntity : IEntity 在哪里?

我正在尝试将 DbLinq 与 SQLite 数据库一起使用,但是当我尝试将一个ITable作为Queryable<TEntity>.

DbLinq 中存在一个已知错误(问题 211),这可能是我的问题的根源,但我想确保我的代码是正确的,如果是,请找出我可以做些什么来解决错误。

这是尝试进行强制转换的通用存储库方法:

这可以编译,但是如果我传入接口IPerson并且TEntity表中实体的类型是Person(其中Person : IPerson),我会从 DbLinq 收到此错误:

S0133:实现QueryMethod Queryable.Cast。

我为什么要这样做?

我有一个库项目,直到运行时才知道实体的类型,但它确实知道实体的接口。所以,我正在尝试转换为接口类型,以便我的库项目可以使用数据。

问题:

  1. 我是在尝试一个不可能的演员还是这绝对是 DbLinq 中的一个错误?
  2. 我还能如何解决我的问题?

更新

我重新设计了我的存储库类,所以它现在需要 aTEntity a TEntityBase,其中TEntity是实体的实际类型,并且TEntityBase是我试图转换到的接口。重要的是,我现在在我的类定义中有以下where子句:

这允许我将我的Table属性存储为 aTable<TEntity>而不是 a ITable,这允许我使用AsEnumerable()(正如斯蒂芬建议的那样)。这是修改后的方法:

到目前为止,这似乎可以解决问题。

0 投票
3 回答
662 浏览

c# - 为什么在 DataContext 上调用 Dispose() 后可以枚举 DbLinq 查询?

更新- 答案显然是 DbLinq 没有Dispose()正确实现。哦!


以下是各种误导 - 底线:DbLinq 不(尚未)等同于 LinqToSql,正如我最初问这个问题时所假设的那样。谨慎使用!

我将存储库模式与 DbLinq 一起使用。我的存储库对象实现了,IDisposable并且该Dispose()方法只做一些事情——调用Dispose(). DataContext每当我使用存储库时,我都会将其包装在一个using块中,如下所示:

这个方法返回一个IEnumerable<Person>,所以如果我的理解是正确的,那么在Enumerable<Person>遍历之前实际上不会对数据库进行查询(例如,通过将其转换为列表或数组或在循环中使用它foreach),如下例所示:

在这个例子中,Dispose()在设置之后立即被调用persons,这是一个IEnumerable<Person>,这是唯一一次被调用。

所以,三个问题:

  1. 这是如何运作的?已处置后,处置后仍如何DataContext查询数据库以获取结果?DataContext
  2. 实际上是做什么的Dispose()
  3. 我听说没有必要(例如,请参阅此问题)处置 a DataContext,但我的印象是这不是一个坏主意。有什么理由处理 DbLinqDataContext吗?
0 投票
1 回答
643 浏览

mysql - 用于生产系统的 DBLinq?

我们正在开发一个带有 C# 代码的 ASP.NET Web 应用程序。数据库是使用 InnoDB 的 MySQL 5.1。数据访问层使用 ADO.NET 调用存储过程,然后根据结果集构建各种数据结构(无对象映射)。这很好用,但有点冗长。

毫不奇怪,我们在设计数据模型的第一个版本时犯了一些错误,但经验让我们变得更聪明,我们决定重构数据模型。我们不必改变我们的数据访问层,但我们也在考虑我们的选择。

如今,我们很难忽视 ORM 工具的流行。我们觉得我们落后了,或者不熟悉他们。不仅如此,我们还设计了一个对象模型,可以很好地描述我们的数据模型。我们会考虑的主要 ORM 工具是 NHibernate、ADO.NET 实体框架和 LINQ to SQL。我们更喜欢 LINQ 到 SQL,因为我们已经读到(在 SO 上)它比完整的 ORM 工具更轻量级。

我们认为使用 ORM 工具的一个缺点是学习曲线,但我们已经看到使用 LINQ 如何减少我们必须编写的代码量,从长远来看可以节省我们的时间。但是,我们使用的是 MySQL,而不是 SQL Server。

所以我的问题是,DBLinq对生产系统是否足够好?或者,LINQ to SQL 是否足以让我们转向 SQL Server 2008? 顺便说一句,我更喜欢使用 SQL Server 而不是 MySQL,但成本是明显的缺点。在 BizSpark 上呆了 3 年后,我们会以 6000 美元的价格上钩。或者,我们应该考虑使用其他 ORM 工具吗?或者,我们应该忽略炒作而不使用 ORM 工具,而是利用LINQ to DataSet吗?

我在 SO 上搜索了有关 DBLinq 的信息,但只找到了 17 个带有DBLinq 标签的问题,因此它似乎并不受欢迎。


编辑

虽然dotConnect for MySQL支持 LINQ,但这是另一种选择。

谁能谈谈该驱动程序在编写 LINQ 查询方面的表现如何?

0 投票
1 回答
486 浏览

c# - 在 MySQL/Dblinq 项目中更改语言/文化

我对数据库编程不是很熟悉,但我有一个 Mysql-Database,我在 C# 下使用 Dblinq 访问它。现在当我输入日期、数字等时,使用的是英文符号,但我的客户需要德语。如何将我的数据库从英语切换到德语?(数据库仍然是空的,如果需要,我可以轻松地重新创建它)

提前致谢!

基督教

0 投票
2 回答
238 浏览

sql - 如何找出在 DbLinq 和 SQLite 中使用 LINQ to SQL 执行的确切查询?

我将 DbLinq 与 SQLite 一起用于我的一个小项目。有没有办法查看在幕后执行的实际 SQL 查询?

我记得实习时有一个 SQL Server 监控程序,但我担心 SQLite 是一个完全不同的野兽。