问题标签 [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 投票
1 回答
463 浏览

c# - LINQtoSQL:映射文件有什么用?

我目前正在使用SqlMetal来生成我的 dbml 和代码文件。我正在使用Visual Studio 2010SqlServer 2000。不幸的是, Visual Studio 2010仅支持SqlServer 2005 或更高版本,因此我无法使用内置向导生成代码。

我一直在使用以下方法生成我的 dbml 和代码文件:

我注意到有一个地图文件选项。

生成 XML 映射文件而不是属性。不能与 /dbml 选项一起使用。

SqlMetal.exe 上的 MSDN

我想知道我是否也应该使用地图文件?地图文件相对于代码属性有什么优势?

0 投票
3 回答
1647 浏览

.net - 带有 SQLmetal 的 SQL Server CE 4.0

我在使用 SQL Server CE 4.0 的 WebMatrix 中创建了一个小型测试项目。不喜欢使用嵌入式 SQL,我想为 WebMatrix 生成的 SQL Server CE 4.0 数据库创建一些 LINQ2SQL 域类。不幸的是,SQLmetal 抱怨数据库文件损坏或不兼容。

是否有SQLmetal.exe与 SQL Server CE 4.0 兼容的版本并且可以独立于 Visual Studio 下载?

提前致谢。

0 投票
1 回答
1970 浏览

linq - 使用 SqlMetal util 从 *SDF 生成 *DBML 文件的问题

我尝试从 sdf 文件生成 dbml。

所以我将 sqlMetal util 本地化为: C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin

Sdf 数据库文件路径:D:\DB_TEST\Spiri_SQL_CE_DB.sdf

所以我在生成 dbml 文件时尝试这个命令:

我收到此错误:

所以我试试这个命令:

但我得到这个错误:

最后我尝试了这个版本的命令:

但我得到同样的错误:

我知道 Spiri_SQL_CE_DB.dbml 文件还不存在,但我尝试用 sqlMetal turil 生成这个文件,有什么不好的?

0 投票
1 回答
1688 浏览

.net - 如何在 MsBuild 项目中包含自动生成的文件?

使用 MsBuild 4.0,我包含了一个生成项目源文件之一的预构建事件。但它会在文件生成之前寻找文件:

错误 CS1504:无法打开源文件“c:\src\Data\Main.Designer.cs”(“未指定错误”)

该文件由 DbMetal/SqlMetal 生成。有什么办法可以使这项工作?

0 投票
2 回答
1670 浏览

c# - SQLMetal 无法从 SQL Server 2005 数据库创建 DBML

正如标题已经说过的,我是否正在尝试使用SQLMetal创建一个 dbml 文件。此操作的背景是创建一个C#-Codefile,其中包含所有表、函数、视图、存储过程等,以便在MVC-Application中使用它。

现在来解决问题。当我从命令启动 SQLMetal 时,它需要很长时间,显示一些小警告并出现错误(DBML1057)。当我阅读错误消息时,SQLMetal 正在尝试提取一个不存在的存储过程。我查看了数据库十几次,但肯定找不到这样的程序。也许这个程序很久以前就被调用过。即您创建一个名为“ GetGameDatesDesc ”的SP,然后将其重命名为“ GetGameDates ”。我认为SQLMetal(在我的情况下)正在寻找“ GetGameDateDesc ”。但是 SQLMetal 的这些信息是从哪里来的呢?我在数据库中找不到单词。我查看了所有视图,功能,... bot 无济于事。此函数不再是数据库的一部分。

编辑 -------------- 02/14/2011 --------------

以下是来自 SQLMetal 的警告:

错误 DBML1042:Type 元素“GetGameDatesDesc”的 Column 元素中的成员属性“ CCode被使用。错误 DBML1057:类型“ GetGameDatesDesc ”的 Column 元素中的存储属性或其默认值“ _CCode ”已被使用。

0 投票
2 回答
1979 浏览

c# - 使用 SQLMetal 生成 .dbml

我是 LINQ to SQL 的新手。我已经尝试过对象关系设计器(O/R 设计器)方法来生成类并且效果很好。但是,我想知道有什么方法可以使用 SQLmetal 工具为我的数据库生成相同的 .dbml 文件。任何人都可以请给我开火的命令。我只想对我的数据库使用 SQLmetal 命令,一切都应该准备就绪。

是否也可以在数据库中为每个表和视图创建单独的类文件,因为这将有助于在 Visual Studio 中处理。

0 投票
3 回答
2942 浏览

mysql - 如何在 Mac 上使用 DbLinq SqlMetal for MySQL?

我在 Mac OS 上使用 Mono/MonoDevelop,我想要一个将 SqlMetal(Mono 中包含的 DbLinq 版本)用于 LINQ-to-SQL 和 MySQL 数据库的示例。

奇怪的是,我找到了很多 SQLite 的示例,但没有找到 MySQL 的示例。为 MySQL 找到的示例似乎是指 Microsoft 的 SqlMetal.exe。

我尝试从 SQLite 安排我的 sqlmetal 命令以使其适用于 MySQL,但我收到以下消息:

sqlmetal:无法加载 databaseConnectionType 类型“ByteFX.Data.MySqlClient.MySqlConnection,ByteFX.Data”。尝试使用 --with-dbconnection=TYPE 选项。

帮助表示赞赏!谢谢你。

0 投票
2 回答
1215 浏览

sql - Linq2Sql 中的 System.DateTime 和 Sql datetime2(使用 sqlmetal)

我想将新的 Sqldatetime2数据类型用于事件记录(因为标准日期时间的精度低于System.DateTime导致存储数据丢失的精度)但是当我生成代码时,sqlmetal.exe我收到以下警告:

db.dbml(98):警告 DBML1008:从数据库加载时,在类型“事件”的“CreatedOn”列中的 DbType 'DateTime2(7) NOT NULL' 和类型“System.DateTime”之间的映射可能会导致数据丢失。

如果我将列定义更改为datetime2(2)但 2 位精度低于System.DateTime可以处理的精度,警告就会消失,对吗?为什么?我怎样才能抑制警告?

0 投票
1 回答
99 浏览

linq - 在条件设置为外部实体的情况下,我应该如何正确编写我的 Linq 查询

以下是用于解释此问题的示例数据:

使用上面的示例表,给定一个“名称”,我需要在其中返回与 tblPrimary.Name 中的名称关联的每个详细记录。tblPrimary.Name 不是唯一的,因此会有重复,但它们确实是不同的行项目,因为它们具有不同的日期和时间。

使用 SQLMetal,生成代码以便对象处理两个表之间的关系。牢记这一点,我按如下方式构造查询:

使用上面的示例数据,如果我在 tblPrimary 中有两个具有不同 DateAdded 的“John”,并且每个 John 在 tblDetail 中有 2 条记录,则查询返回的结果是:

我真正想要的结果是:

谁能建议我如何在不使用联接的情况下解决这个 Linq 查询?我假设两个表之间的 sqlmetal 生成关系应该已经为我处理了连接。

0 投票
1 回答
302 浏览

visual-studio - sqlmetal 中的 [DataMember] 行为与 dbml 设计器不同

我已经使用 linq-to-sql 接管了一个应用程序,现在计划对数据库进行一些重大更改。由于不支持刷新 dbml 设计器中的模型,我尝试改用 sqlmetal。但是,我遇到了 sqlmetal 生成的代码与 dbml 设计器生成的 colde 不兼容的问题。

如果我有一个表(例如 Car),它有一个 FK 到另一个表(例如 Model),那么序列化会有所不同,它不会为关联属性生成 DataMember 属性:

有没有办法解决这个问题,在使用 sqlmetal 时让 Model 属性成为数据合同的一部分?