问题标签 [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.
batch-file - 当我在我的 DBML 文件上运行 msxsl.exe 时,它会引入回车符,这会弄乱最后的 SQLMetal.exe 步骤
我刚刚从 VS 2015 升级到 VS 2019(以及 Windows 7 到 Windows 10)。我的项目是在批处理文件中使用 SQLMetal.exe 和 msxsl.exe分三个步骤创建和修改 DBML:
- 使用 SQLMetal.exe 生成 DataModel.dbml 文件。
- 使用 msxsl.exe 添加数据库转换。
- 使用 SQLMetal.exe 生成 DataModel.cs 文件。
当我在新环境中运行它时,它给了我一个奇怪的错误:
经过多次试验和错误,我意识到 msxls.exe(我刚刚下载的)在 DBML 文件中的结束列和关联标记之前添加了回车符。这似乎是导致最终 SQLMetal.exe 步骤出错的原因。
我实际上可以在第 2 步之后打开 DataModel.dbml 文件,并将 "\r\n < /Column>" 上的所有内容替换为 "< /Column>" 和 "\r\n< /Assocation>" 到 "< /Association> ",然后第 3 步似乎有效。显然,我不想每次都这样做。
那么,我需要做什么才能运行 msxsl.exe 并且不让它在结束 Column 和 Association 标签之前添加回车符?
msxls 命令如下:
msxsl 的版本是否重要?
c# - linq2sql C#:如何从更改模式名称的表中查询
我有一个网络服务,它试图连接到桌面会计应用程序的数据库。
它具有相同名称但具有不同模式名称的表,例如:
Schema 名称采用,等[Year+IncrementalNumber]
格式。[202014]
[202015]
[202016]
每当我想在数据库中查询客户信用信息时,我应该从具有最大数字的模式中获取信息,例如[DatabaseName].[202016].[CustomerCredit]
202016 是否是我数据库中的最新模式。
注意: 会计应用程序数据库中新模式的创建没有规则,完全由会计应用程序的用户决定,安装在不同位置的每个应用程序实例可能有不同的模式数量。
所以当我开发我的网络服务时,我不知道在开发之前连接到哪个模式。在运行时,我可以找到正确的模式以从其表中查询,但我不知道如何设法在查询中获取具有正确模式名称的表信息。我通常创建一个 linq-to-sql dbml 类并使用它的定义从 db 读取信息,但我不知道如何以这种方式管理模式更改?
DBML 设计器管理 Scehma 名称,如下所示:
但是,由于我的应用程序可以在运行时检索模式名称,所以我不知道如何在我的特殊情况下修复表声明。它在 ADO.NET 中很容易处理,但我不知道它在 Linq2SQL 中的等价物:
c# - 将 POCO 类引入现有解决方案
我的项目结构如下
DAL - 类库 - EDMX 文件(但我也不想依赖实体框架,因此它可能是 Linq to SQL 文件) BusinessLogic - 类库 - ICustomer(接口类,添加,更新,编辑记录) - CustomerService(类继承 ICustomer) - MyContextClass (引用上述 EDMX/DBML 项目的类) 网站- WebForms 项目
最近我们考虑引入一个新项目,即它可以是手机应用程序、桌面应用程序等。
经过一些研究,似乎最好的方法是引入 POCO 类,以便每个新应用程序都可以使用这些类来做同样的事情。
- 我需要用这些类引入一个新的类库吗?
- 如果是,并且我引入了一个新的类库,我如何生成 POCO 类,尤其是当我有诸如
List<Customer> GetCustomers()
BusinessLogic 层之类的方法时?我是否必须手动生成每个属性并复制数据库表中的每一列? 在我的 DAL 中,我有部分类允许我对列使用其他方法,即
NormaliseCustomerName
当我使用诸如c.Name = myValue.Name.NormaliseCustomerName();
针对文本框。
我需要将这些移到 POCO 类中吗?4.如果有人可以给我一个简短的例子,那就太好了,因为我已经阅读了一些教程,但每种方法之间似乎存在差异。
c# - 从 datacontext 返回相同类型的两个视图
我创建了两个视图,它们从相同的表中返回完全相同的列。两个视图之间的唯一区别是它们过滤不同的参数。我已将这些添加到我的 .dbml 文件中(dbml中的视图图片),然后为这两个视图自动生成了两个类。
在我的代码中,根据属性过滤器的值,查询两个视图之一,无论是当前的还是以前的。我需要将这些视图作为相同类型返回。所以 IOrderedQueryable<> items 有一个返回类型。
目前,它们以 clientOrdersQueryCurrent 或 clientOrdersQueryPrevious 的形式返回。如果我将 IOrderedQueryable<> 项设置为其中之一并尝试转换另一种类型,则会导致运行时错误。
我目前唯一能想到的解决此问题的方法是创建一个类,并在返回后让查询将结果映射到该类。
做这个的最好方式是什么?
我目前使用的 ORM 是 NHibernate。
linq - 不同命名空间和文件中的 .dbml(数据类)
我是 LINQ to SQL 的新手,需要一些帮助来分离数据类与在数据库上执行的 CRUD 操作。我需要从 .dbml 设计器文件中分离出数据类并将其移动到另一个命名空间,最好是在新文件中。
.dbml 文件的默认行为/解析捆绑了所有难以维护的数据类。
有什么办法可以解耦这种机制。
对此问题的任何帮助都将受到高度赞赏。
c# - 事件在错误的按钮上触发
我有一个带有 2 个单选按钮(rgbIncoming
和rgbOutgoing
)和 1 个复选框(chkIsNoPermission
)的 WinForm,它们都有不同的“检查更改”事件,这些事件仅来自设计器。
出于某种原因,在这一行之后(根据堆栈跟踪),如果我评论这一行,一切都按预期工作
[1]BoundDocument.Incoming = rgbIncoming.Checked;
(BoundDocument 是dataBindingSource
源.dbml
文件的名称)
checkBox( chkIsNoPermission
) 事件被触发
[1] 上面的行调用this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName))
,但 propertyName 是 excpeted( rgbIncoming
) 我还检查了.dbml
文件,看起来很好
编辑
chkIsNoPermission.Checked = ...
只被调用一次
database - 转换/执行 DBML 模式以创建/更新数据库表/字段,有吗?
是否有任何库或包可以自动检查 DBML(数据库标记语言)文件并促进对数据库中的表或字段的更改/插入?
换句话说,从 DBML 文件中,创建/删除/更改数据库中的字段和表(mysql、postgres、mariadb、sqlite 等)。
感激的
visual-studio-2010 - 使用 Designer 对 .dbml 文件进行细微更改后,导致“O/R Designer 验证失败”的原因是什么?
我使用 SQL Server Management Studio 向表中添加了一些列,然后想在 Visual Studio 2010 的项目中引用它们,它是使用实体框架加载的,这似乎没有一个方便的功能来简单地从数据库导入更新.
所以我手动添加了列。它们只是像现有列一样的位列,所以我使用剪切和粘贴来复制该列,然后重命名它们并填写存储字段以匹配。
但是当尝试构建项目时,它会失败:
O/R 设计器验证失败。. . myDB.dbml 错误:无法完成操作。未指定的错误
我发现的关于这些不太有用的错误消息的主要提示涉及重新启动 Visual Studio。这对我没有帮助。
还有什么可能导致(以及什么可以解决)这个错误?