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

sql-server - SqlMetal、Sql Server 2008 数据库、带有 HierachyID 的表、dal cs 文件有时会创建吗?

我有 2 个数据库,其中有 2 个带有 HierachyID 字段的表。对于一个数据库,我可以获得 dal cs 文件,对于另一个数据库,我无法获得 dal cs 文件?

HBus 是一个我可以获取 dal cs 的数据库,...

这将我踢出一个文件,......它有效,但不包括表的 HierarchyID 字段并包括该表的所有其他字段。这没关系,我不介意。

上面的 cmd 行会发出警告,但仍会生成一个文件,就像这样

HMsg 是一个带有 HierarchyID 字段的表。

我有另一个数据库,Elf,几乎是一样的东西,但是在使用 sql metal 时我得到一个警告和一个错误,我没有得到一个 dal cs 文件......

SqlMetal /server:.\SQLSERVER2008 /database:Elf /code:ElfDataContextDal.cs /views /functions /sprocs /namespace:HBusDC /context:HBusDataContext

错误以及警告和 cs 文件未能出现在我的光盘上,... :-(

这些字段在 Elf db 中的声明方式相同

OrgNode [HierarchyID] null ,

在 HBus 数据库中...

OrgNode [HierarchyID] null ,

两个数据库都在 sql server 2008 的同一个实例中,因此 HierarchyID 是一种内置类型,db 都没有 HierarchyID udt ,...

提前为任何回复欢呼...

0 投票
1 回答
93 浏览

.net - SQLMetal可以生成的节省行创建时间的方法

我想保存一行的创建时间,所以我创建了一个日期时间列并将其默认值设置为 Getdate()。但是当我从 SQLMetal 生成 dbml 文件并从中重新创建数据库时,该函数丢失了。

在运行 SQLMetal 时,我已将 /functions 参数添加到命令行,但这并没有解决问题。

或者,是否有任何其他方法可以节省行创建时间,可以通过 SQLMetal 进行逆向工程?

0 投票
1 回答
964 浏览

linq - 在 Excel To SQL 中执行 LINQ 查询

我希望能够使用 LINQ 和 Excel 与 SQL 数据库进行交互(这是一个遗留问题)。这种事情可能吗?

我正在使用 SQLMetal,并在 VB 中生成了一些数据库类,但它们似乎不能顺​​利进入 Excel(我收到很多红色错误文本)。

任何想法,将不胜感激。

0 投票
2 回答
2201 浏览

linq-to-sql - 未生成 SQLMetal DataContext 关联

我正在为数据库生成 LINQ-to-SQL DataContext 和实体类。该数据库有几个表,其中两个是 - [AccountMaster] 和 [AccountCodes]。它们之间定义了外键关系,[AccountMaster].AccountNumber 从 [AccountCodes] 引用。

在 VS2008 中添加一个 LINQ-to-SQL 文件并将这些表拖到 DBML 设计视图中,从而在 AccountMaster 类中适当地生成一个 AccountNotes 集合。同时,使用 SQLMetal 生成 DataContext 不会产生任何 EntitySet 集合。

设计师输出:

SQLMetal 输出:

我正在按照指南

http://weblogs.asp.net/scottgu/archive/2007/07/11/linq-to-sql-part-4-updating-our-database.aspx

我尝试首先使用 SQLMetal 生成 DBML 文件,然后从生成的 DBML 生成 DataContext.cs 文件:

这不会生成关联。事实上,从 SQLMetal 与设计器视图中检查 DBML 文件:

设计视图 DBML:

SQLMetal DBML:

因此,在 DBML 步骤中已经缺少关联。

由于数据库包含大量表/存储过程,因此使用设计器重新生成 DataContext 类是不切实际的。如何让 SQLMetal 正确生成关联?

编辑:

在整个数据库上运行 SQLMetal,我意识到某些实体关联正在正确生成。AccountNotes 上的外键定义为:

编辑2:

我注意到正确创建的关联是那些具有 ON DELETE CASCADE/UPDATE 规则的关联。那么生成没有在数据库级别严格定义此规则的关联是否是荒谬的?

0 投票
1 回答
235 浏览

sql-server-2008 - SQLMetal 是否支持 SQL-Server 2008 数据类型?

我在 VS2K8 的 3.5 框架项目中使用 LinqToSQL,针对 MS SQL 2k8 运行。

当我使用 Visual Studio 中的设计图面创建表映射时,一切正常。

当我使用 SQLMetal(来自 Windows SDK v6.1)创建表映射时,SQLMetal 抱怨我正在使用的 SQL Server 2k8 数据类型(例如日期和时间)。

SQLMetal 是否支持 SQL Server 2k8 数据类型?我需要更新版本吗?还是我必须在可视化设计器中创建映射/恢复为 SQL Server 2k5 数据类型?

谢谢

0 投票
3 回答
3452 浏览

visual-studio - 用于特定表的 SQL Metal 或其他方式将表刷新/添加到 .dbml 文件

任何人都可以在 Visual Studio 中执行此操作,而无需使用服务器资源管理器吗?

我也试过看宏,但只录制产品

所以那里没有运气。

有什么方法可以编写这个脚本吗?

0 投票
3 回答
7359 浏览

c# - 如何在 LINQ to SQL/SQLMetal 中有效地更新外键?

我在尝试更新外键字段时遇到了问题:

由于 SQLMetal 代码抛出System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException().

我不是第一个遇到这个问题的人:

LinqToSQL 错误:由于对象的当前状态,操作无效http://social.msdn.microsoft.com/forums/en-US/linqtosql/thread/f9c4a01a-195a-4f2b-a1cb-e2fa06e28b25/讨论它, 在其他人中。

他们的解决方案是这样的:

这当然会导致在 Foreign 上进行数据库查找,只是为了取回具有我已经知道的 Id 的对象!那么,如何在没有毫无意义的查询(或者如果我有很多这些 FK 的查询)的情况下完成此更新?

0 投票
4 回答
1152 浏览

linq-to-sql - SQLMetal 多个外键指向一个表问题

编辑- 清理问题以更好地反映实际问题:

我正在使用 SQLMetal 从我们的 SQL Server db 生成数据库类。最近,我需要添加一个具有多个指向同一个表的外键的表。使用 LINQPad 来处理新表,我能够访问两个外键的属性,如下所示:

  • 记录.FK_AId
  • 记录.FK_BId
  • 记录.FKA
  • 记录.FKB

...这正是我所期望的。问题是,SQLMetal 生成的类会产生以下属性:

  • 记录.FK_AId
  • 记录.FK_BId
  • 记录.FKA
  • 记录.FKBTableNameGoesHere

现在我可以改变生成的类,所以 FKBTableNameGoesHere 将是 FK_B,但是生成的文件经常被不同的团队成员更改,所以这将是一个巨大的痛苦。有一个简单的解决方法吗?

提前致谢。

编辑 2 因此,我认为解决方案是创建一个部分类,该类具有一个名为我想要的属性的属性,并让 getter/setter 指向名称不佳的属性。这适用于选择,但不适用于 where 子句等。有人有解决方案吗??

0 投票
2 回答
1678 浏览

c# - 没有为此对象定义无参数构造函数

在我的项目中,我使用 SqlMetal 创建 Linq-to-SQL 类。问题在于 SqlMetal 似乎没有创建无参数构造函数。我总是解决这个问题,因为我总是可以获取默认的连接字符串名称并将其传递给构造函数 - 但是,现在我被迫在标记中使用 LinqDataSource,而不是代码,所以我无法指定构造函数。

有什么方法可以强制 SQLMetal 生成无参数构造函数?
或者,将其翻转过来,实际上有一种在标记中指定连接字符串的方法,如下所示:

0 投票
1 回答
94 浏览

.net - LINQ to SQL:EnumMapper.exe 的起源?

在我目前正在开发的这个系统中,DataContext 是使用 SqlMetal 通过一个非常类似于这里详述的过程生成的。

  1. 在数据库上运行 SqlMetal.exe 以生成 dbml 文件
  2. 在 dbml 文件上运行控制台应用程序以将特定整数替换为枚举
  3. 再次运行 SqlMetal.exe 以从 dbml 文件生成代码

问题是,我们正在使用一个名为 EnumMapper.exe 的可执行文件来执行第 2 步,但它并没有完全按照我的意愿进行操作。我不知道这是一个内部编写的应用程序,没有任何源代码留在任何地方,或者它是一个在网络上某处找到的程序。广泛的谷歌搜索发现我除了上面的链接之外没有任何线索。

有没有人听说过这个神秘的 EnumMapper.exe?