LINQ to SQL - 动态表属性

时间:2011-04-08 06:00:06

标签: c# .net asp.net linq linq-to-sql

我目前正在为付款提供商工作。我想从Provider配置中获取事务表名,以便在我的LINQ查询中使用,但是要理解以下示例是不可能的:

[Table(Name = Config.TransactionTable)]
public class Transaction : ITransaction
{
   ....
}

当我执行上述操作时,我在编译时遇到以下错误:

  

属性参数必须是属性参数类型

的常量表达式,typeof表达式或数组创建表达式

解决此问题的最佳方法是什么,并使用LINQ to SQL来实现我想要的问题?

1 个答案:

答案 0 :(得分:0)

属性(TableAttribute)为sealed,限制了许多选项;但是,LINQ-to-SQL与属性模型无关 - 还有其他提供者。最值得注意的是,您可能会考虑使用xml模型提供程序,并在运行时生成xml。这是重载构造函数中的MappingSource参数;典型用法为XmlMappingSource.FromXml(...)或类似。

但是,核心表在运行时会发生变化,这似乎很常见。不常见但不受支持。

作为参考,隐式默认值为AttributeMappingSource