问题标签 [sqlmetal]

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 投票
5 回答
6288 浏览

.net - Linq to SQL - 不要获取特定列

有没有办法使用 linqtosql 获取特定列,而不必使用匿名类型并单独指定每个返回的文件?

我们使用 SQLMetal 生成 dbml 文件,该文件包含所有类型的查询数据结果。但是,当在LINQ查询中包含选择列时,结果将变成匿名类型,而不是DBML文件中声明的类型。我想从特定表中选择除一列之外的所有列,但仍然以相关的 dbml 类型返回结果。

任何想法表示赞赏。

0 投票
1 回答
528 浏览

sqlmetal - SqlMetal 脚本和大写

当我运行 SqlMetal 时,它会生成所有带有大写字母的视图和函数。他们是一种让它在数据库中的任何情况下生成它的方法吗?

当我使用 UI 构建 DBML 和 CS 文件时,它会正确处理此问题,但是当我编写脚本时,SqlMetal 似乎将它们设为大写。

这没什么大不了的,但这让我想知道它们是否是我不知道的其他细微变化,或者我只是在做一些愚蠢的事情。

如果有帮助,这就是我正在做的事情:

0 投票
2 回答
260 浏览

visual-studio-2008 - 当我进行数据库更改时,我如何知道需要删除哪些内容并将其读入 Visual Studio 中的 LinqToSql O/R 设计器?

例如,我将表中的列从 null 更改为不为 null。

然后我需要删除并读取表格。那部分很清楚。

访问表,尤其是表中的列的视图、函数和存储过程呢?

我已经尝试对 SQLMetal 生成的文件运行差异,但取得了一些有限的成功,但即便如此,它还是相当不清楚。

我知道至少有一个商业工具声称可以解决这个问题,但我正在寻找免费的东西。

人们如何处理这个问题?

0 投票
1 回答
1087 浏览

linq - 使用 SQLMetal 从 SQL Compact 3.5 数据库生成 Linq 类

我通过从命令行对 Compact 3.5 数据库运行 SQLMetal 来生成 Linq 类。Compact 3.5 数据库是本地数据库缓存(由同步框架“创建本地数据库缓存向导”生成)。CE 似乎支持外键约束,但我没有看到任何外键约束,并且 SQLMetal 不会将它们生成到模型中。生成我的来自源 SQL 2008 数据库的模型并将我的数据上下文指向 Compact 数据库似乎不起作用。

除了手动将它们添加到模型中之外,还有什么方法可以生成我的关联?

0 投票
2 回答
877 浏览

visual-studio - 忽略 SqlMetal 生成文件的代码分析

我正在开发一个包含 SqlMetal 生成文件的 C# 项目。我想使用代码分析。我在代码分析选项中打开了“抑制生成代码的结果”,但它仍然报告 SqlMetal 类。有什么办法可以关闭它吗?

我正在使用 Visual Studio 2008 和 SqlMetal 2.0.50727.3082

0 投票
3 回答
6299 浏览

visual-studio - 找不到 sqlmetal.exe

每当我尝试运行 sqlmetal 时,我都会得到以下信息:

'sqlmetal' 不是内部或外部命令、可运行程序或批处理文件

这来自 CMD 和 Visual Studio 命令提示符

我在其他机器上多次使用过 sql metal,但它似乎在这台机器上不起作用......

我错过了什么吗?

0 投票
1 回答
374 浏览

c# - 为什么 SQLMetal.exe 为 SQL Compact 3.5 和 SQL Express 2008 生成不同的结果(缺少外键)

故事如下:我创建了一个 SQL Compact 3.5 数据库并使用 SQLMetal.exe 为其生成 DataContext。它运行良好,但很快我意识到它根本不适合我的需求,所以我决定使用 SQL Express 2008。我启动了用于 Compact 创建模式的相同 SQL 脚本,然后启动了 SQLMetal.exe 工具. 我没想到生成的 DataContext 会有所不同,但由于某种原因我错过了所有的关系。

这是 SQL Compact 命令行:

这是 SQL Express 2008:

有任何想法吗?

0 投票
1 回答
1318 浏览

vb.net - MSLinqToSQLGenerator 生成与 SQLMetal 不同的输出

我有一个相当大的 DBML 文件,最近发现 Visual Studio 的 MSLinqToSQLGenerator 生成的输出不同于:

它似乎已经从生成的 VB 代码中删除了一组任意(我认为相对较小)的关联。但 SQLMetal 工作正常。输出不应该相同吗?

经过进一步研究,我发现差异似乎是实体上的关联涉及属性,这些属性也用于具有不同列数的同一实体上的其他关联。例如: 实体 A 具有列 id 和 name 实体 B 具有列 id、name 和 fkA(A 的外键) 实体 C 具有列 id、name、fkA 和 fkB(可为空的 fkB)

实体 C 具有关联 C_A,将 fkA 链接到 A.id 它还具有关联 C_B,将 fkA 和 fkB 链接到 B.fkA 和 B.id

支持 C_B 的属性代码不会由 Visual Studio 生成,而是由 SqlMetal.exe 生成。

允许这种关联吗?代码生成方式不同是否有原因?

0 投票
2 回答
674 浏览

c# - C#:将数据添加到 SQLMetal 生成的数据库类?

我使用 SQLMetal 生成了一个代表我的数据库的代码文件,但我不知道如何从 SQLMetal 生成的类中将条目添加到数据库中。我该怎么做呢?我只是添加到各种属性还是什么?

0 投票
4 回答
3799 浏览

linq - 同一张表的多个外键

我有一个参考表,其中包含性别、地址类型、联系人类型等的各种受控值查找数据。许多表对此参考表有多个外键

我还有一个多对多关联表,它们有两个外键指向同一个表。不幸的是,当这些表被拉入 Linq 模型并生成 DBML 时,SQLMetal 不会查看外键列的名称或约束的名称,而只会查看目标表。因此,我最终得到了名为 Reference1、Reference2 的成员……对维护不太友好。例子:

当然,我可以进入 DBML 并手动更改成员名称,但这意味着我不能再往返我的数据库模式。在模型的当前阶段,这不是一个选项,该模型仍在发展中。将引用表拆分为 n 个单独的表也是不可取的。

我可能会编写一个脚本,在每一代之后针对 XML 运行,并用派生自 ThisKey 的名称替换成员名称(因为我遵守这些类型的键的命名约定)。有没有人找到更好的解决这个问题的方法?