我目前正在为付款提供商工作。我想从Provider配置中获取事务表名,以便在我的LINQ查询中使用,但是要理解以下示例是不可能的:
[Table(Name = Config.TransactionTable)]
public class Transaction : ITransaction
{
....
}
当我执行上述操作时,我在编译时遇到以下错误:
属性参数必须是属性参数类型
的常量表达式,typeof表达式或数组创建表达式
解决此问题的最佳方法是什么,并使用LINQ to SQL来实现我想要的问题?
答案 0 :(得分:0)
属性(TableAttribute
)为sealed
,限制了许多选项;但是,LINQ-to-SQL与属性模型无关 - 还有其他提供者。最值得注意的是,您可能会考虑使用xml模型提供程序,并在运行时生成xml。这是重载构造函数中的MappingSource
参数;典型用法为XmlMappingSource.FromXml(...)
或类似。
但是,核心表在运行时会发生变化,这似乎很常见。不常见但不受支持。
作为参考,隐式默认值为AttributeMappingSource
。