问题标签 [dbml]

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 投票
2 回答
1018 浏览

.net - Editing Autogenerated DMBL file for WCF Service

In our project we have a standard auto-generated designer.cs file, linked to a DBML file, that contains all our object classes that map onto our database tables.

We want to pass these objects directly through a WCF Service and so they need decorating with the [DataContract] and [DataMember] attributes where appropriate. What is the best approach to doing this so the changes won't get wiped out when the designer.cs file is re-generated upon a change to the database scheme or some other change.

Partial classes are an option, but if the property I want to decorate with the DataMember attribute is already defined in the autogenerated designer.cs file then I can't add the same property definition to the partial class as this means the property will have been defined twice.

0 投票
2 回答
8931 浏览

asp.net - 使用 SqlMetal 和 Visual Studio 时自动生成 DataContext 设计器文件

我正在使用SqlMetal为使用 LinqToSql 的 ASP.net 应用程序通用我的 DataContext.dbml 类。当我最初创建 DataContext.dbml 文件时,Visual Studio 使用它来创建相关的 DataContext.designer.cs 文件。此设计器文件包含 C# 中的 DataContext 类,该类在整个应用程序中使用(并且从 dbml 文件中的 XML 派生),对于弥合 SqlMetal 的输出和使用带有 LinqToSql 的 DataContext 之间的差距至关重要。

但是,当我对数据库进行更改并重新创建 dbml 文件时,设计器文件永远不会在我的网站中重新生成。而是保留旧的设计器文件(因此对 DBML 文件的任何更改都不能通过 LinqToSql DataContext 类访问)。

到目前为止,我能够用来重新生成设计器文件的唯一过程是

  1. 转到 Windows 资源管理器并删除 dbml 和 Designer.cs 文件
  2. 转到 Visual Studio 并在解决方案资源管理器中点击刷新。dbml 和 Designer.cs 文件现在从项目中消失了。
  3. 使用 SqlMetal 重新生成 dbml 文件
  4. 转到 Visual Studio 并在解决方案资源管理器中点击刷新。现在重新创建了 Designer.cs 文件。

似乎 Visual Studio 只会在检测到新的 dbml 文件但还没有 Designer.cs 文件时才会生成 Designer.cs 文件。这个过程非常不切实际,因为它涉及几个手动步骤,并且会弄乱源代码控制。

有谁知道我如何可以自动重新生成 Designer.cs 文件,而无需遵循上述手动删除/刷新/重新生成/删除过程?

0 投票
1 回答
315 浏览

visual-studio-2008 - 在 Designer 中刷新 LinQ2SQL 模型而不丢失所有属性

所以我在当前的应用程序中大量使用 LinQ2SQL,虽然我在部分类中有大部分内容,但必须在 VS 设计器中调整一些东西(比如我包装的字段的访问器)。然后,有时我喜欢在模型中命名字段,而不是在数据库中命名字段。

所以,我现在的问题是。回到更改已知表时,我只有两个选择:

  • 通过设计器手动引入新字段
  • 从模型中删除表并从服务器资源管理器中重新导入(丢失属性)

两种方式都不尽如人意。是否有一些我错过了“仅刷新更改”的秘密按钮?我的意思是,模型知道所有映射,从数据库中获取新事物并不是那么困难。

有什么办法解决这个问题吗?

0 投票
2 回答
608 浏览

c# - 如何使用 sqlmetal 生成内部(非公共)数据上下文

我想使用 sqlmetal 为我的项目生成 dbml 数据上下文,但是创建的数据上下文和所有类都标记为public. 由于这应该是一个 API 层,我想将其中许多类或至少将上下文本身标记为internal. 有没有办法在 sqlmetal 或其他工具中执行此操作,而无需手动编辑 dbml?

0 投票
2 回答
3555 浏览

version-control - DBML 更改和源代码控制

我在使用 DBML 时遇到了一些问题。每次团队需要将更改同步到 SVN 时,DBML 都会发生更改,从而产生大量冲突。这似乎与 dbml 编辑器中的一些重新排列有关,因为如果您在编辑器中打开 dbml 文件,.dmbl.layout 中的大多数 associationConnector 部分似乎在开发过程中发生了变化。

您是否有任何最佳实践来避免这些可能需要一个多小时才能轻松修复的布局重新排列?

最好的问候,古斯塔沃

0 投票
2 回答
4094 浏览

visual-studio - Visual Studio 和 LINQ:将 DBML 文件放在项目中的单独目录中

我的策略是保持项目的布局干净。鉴于这是一个数据层项目,并且我将为每个相关实体都有一个类文件,我想我会将 .dbml 放到它自己的目录中。事实证明,在子目录中定位您的 .dbml 文件会将其变成某种较低级别的命名空间。

这是一个 C# 类库项目。

有什么提示可以关闭此功能并访问 LinqToSql dbml 数据上下文名称,而无需键入目录名称即可访问实际的 LinqToSql 类?

0 投票
1 回答
1634 浏览

visual-studio - 有没有办法在 Visual Studio 2008 的 DBML 文件中查找表?

这些一直困扰着我多年。

回到过去,当我们自己寻找食物并使用 DataSet 时,您可以通过从顶部的下拉列表中选择您想要的内容来捕捉到 DataSet 中的特定表。

如果我有一个很大的 ol' Linq2Sql DBML 文件,其中包含很多表,那么导航将成为一场噩梦。有没有办法跳到特定的表?

0 投票
1 回答
513 浏览

dynamic-data - DynamicData:使用自定义类型作为返回类型

我可以强制 DBML 设计器使用我的自定义类型而不是自动生成的类型吗?我可以编辑 database.designer.cs,但是当我修改表时这些更改将丢失。

如果没有,我怎样才能轻松地从自动生成的类型“转换”为我在 Linq 中的自定义类型?

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 投票
1 回答
743 浏览

linq-to-sql - DBML 删除 .Name 属性?

我一直在使用 resharper 在我们的代码库中重命名我们的模型名称。我对 .dbml 文件中的一些模态名称进行了一些更改。我注意到我需要将 name 属性添加到属性中才能使 sql 正常工作。我在 .dbml 文件的代码隐藏视图中添加了这个。我切换回设计器并删除了更改?我可以手动更改名称属性吗?

手动:`[Column(Name="iUnitID", Storage="_UnitID", AutoSync=AutoSync.Always, DbType="Int NOT NULL IDENTITY", IsDbGenerated=true)] public int UnitID

已保存 .dbml `[Column(Storage="_UnitID", AutoSync=AutoSync.Always, DbType="Int NOT NULL IDENTITY", IsDbGenerated=true)] public int UnitI