我有一个数据库和一个由 O/R-Mapper 创建的实体集,所有这些都与 LINQ 一起使用.
I've got a database, and an entityset created by the O/R-Mapper, using all this with LINQ.
在 O/R-Mapper 中,我需要为每个表输入一个表名(源),用于 LINQ 生成的 SQL.在 .dbml 文件中,它看起来像这样:
In the O/R-Mapper I need to enter a table name (source) for every table, which is being used for the SQL generated by LINQ. In the .dbml file it looks like this:
<Table Name="dbo.Customers" Member="Customers">
现在我想在运行时更改这个表名,所以 SQL 将针对其他一些表(例如,customers2008 而不是 customer)运行.
Now I'd like to change this table name during runtime, so the SQL will be run against some other table (customers2008 instead of customer, for example).
有没有办法在运行时更改表名(源名)?
Is there any way to change the table name (source name) during runtime?
[更新] 经过一些令我沮丧的测试后,我不得不发现 XmlMappingSource 确实将未保留在数据库中的计算属性呈现为不可访问(是的,即使由 SqlMetal 创建的映射也忽略了所有未保留的内容).>
[Update] After some testing to my dismay I had to discover that XmlMappingSource does render computed properties which are not persisted in the database unaccessable (yes, even the mapping created by SqlMetal does ignore everything which is not persisted).
有点……你必须做这样的事情:
Kind of ... You'd have to do something like this:
这是一篇博客文章,一步一步解释了这个过程:http://weblogs.asp.net/guybarrette/archive/2008/07/23/linq-to-sql-dynamic-mapping.aspx
Here's a blog post that explains this process step by step: http://weblogs.asp.net/guybarrette/archive/2008/07/23/linq-to-sql-dynamic-mapping.aspx
我对 ERP 数据库使用了类似的过程,该数据库的表名类似于 ttccom001xxx,其中 xxx 是安装 ID(我知道这是一个可怕的架构,但我对此无能为力).我们有多个安装,因此我为每个安装复制一次初始 xml 映射,然后将 xxx 替换为安装 ID.我编写了一个使用 Regex 处理替换的小型控制台应用程序,并将其添加到我的构建过程中.
I'm using a similar process with an ERP database that has table names like ttccom001xxx where xxx is the installation ID (I know it's a horrible schema, but there's nothing I can do about it). We have multiple installations, so I copy the initial xml mapping once for each installation and then replace xxx with the installation ID. I wrote a small console app that uses Regex to take care the replacements and added it as part of my build process.
这篇关于如何在运行时更改 LINQ O/R-M 表名/源?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!