问题标签 [dbmetal]

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

c# - DBMetal 为 sqlite_sequence 生成无效类

我正在使用 DBLinq 和 DBMetal.exe 从 SQLite 数据库生成类似于 Linq-to-SQL 的类。每次我使用 DBMetal 重新生成我的 DataContext 时,它都会为 sqlite_sequence 生成一个类。问题是 sqlite_sequence 不是一个合适的表,所以这个类不完整。

问题是,DBMetal.exe 能否更好地生成此类,或者我可以告诉 DBMetal 忽略该类吗?

谢谢!

这是我的 DBMetal.exe 调用

这是为 sqlite_sequence (这是一个系统表)实际生成的 SQL:

这是生成的损坏类(注意属性、名称和序列,它们没有数据类型。这就是问题所在):

0 投票
1 回答
4375 浏览

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

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

0 投票
1 回答
902 浏览

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

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

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

我收到此错误:

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

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

所以,这有效:

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

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

0 投票
1 回答
902 浏览

c# - DBMetal(SQLite):具有多个外键的“序列包含多个元素”

尝试使用 DbMetal(作为 DbLinq 的一部分)创建 C# 文件时,出现以下错误:

DbMetal:序列包含多个元素

它仅在我引用多个外键作为主键的一部分时出现。以下是我的表的 DDL 导致问题:

我用来设置我的 SQLite 数据库的工具是 SQLite Studio。我设置了一个表约束来设置外键。

如果我单独(每个项目)设置外键而不是作为表约束,生成的类对 Question 表有多个引用,在尝试插入表时会导致多个引用和错误。

0 投票
1 回答
567 浏览

sqlite - 为什么 DbMetal 生成带有“main”的表属性?

我是 DBLink 和 Sqlite 的新手。当 DbMetal 生成 Nortwind.cs (C#) 时,它会使用 Table 属性标记一些方法:

在我使用 DbMetal 创建一个 Nortwind.vb (VB.Net) 文件后,测试程序中止,因为没有名为“main.Categories”的表。但是,当我删除“main.”时,它可以工作:

我只是不明白为什么会生成“main”。为什么它适用于 C# 而不适用于 VB.Net?

0 投票
1 回答
667 浏览

.net - 如何使用 DbMetal 设置 DataContext 类名?

DbLinq 的 DbMetal 生成一个Main继承DataContext. 我不想这样Main。如何改变它?

0 投票
1 回答
385 浏览

vb.net - CodeConditionStatement 和 Nullable.Equals

我必须通过 C# CodeConditionStatement 创建以下 VB.Net 代码

我已经尝试过的是

System.Nullable不能在 CodeExpression 中转换。

0 投票
1 回答
95 浏览

datacontractserializer - 如何序列化 DbMetal 生成的类的实例?

我注意到 DbMetal 生成的类没有实现ISerializable接口,也没有用DataContractAttribute. 序列化此类类的最简单方法是什么?是否有任何 DbMetal 参数可以帮助我?

0 投票
0 回答
62 浏览

c# - 在预构建事件中更改类名

可能重复:
如何使用 DbMetal 设置 DataContext 类名?

我在我的预构建事件中使用 DbMetal 来生成所需的代码文件。DbMetal 生成一个名为Main. 在其 wiki 中,我找不到更改该默认值的参数。

在预构建事件中(在生成上面的代码文件之后)我想自动重构和更改类名。

在预构建事件中是否有任何本地方法可以做到这一点?

如果不是,我将被迫编写自己的小解析器来完成这项工作并在那里调用它。


(实际上我不知道 VS2005/2008 是否支持构建前/构建后事件。请随意添加此问题的标签。)

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(外键)实际上设置为正确的值。