我不得不修改大量代码来为一堆表适配器设置SqlCe数据库连接。我想避免重复,并尽量减少错过更新表适配器的机会,方法是创建一个通用方法来包装每个表适配器的创建。不幸的是,表格适配器不是从单个基类派生的,并且每个都有它自己的连接属性。通过分配新的表格适配器到动态我可以得到它编译。这是一个很好的方法,并且在使用dynamic时应该注意哪些陷阱?在动态接口中未定义泛型类型的访问属性
protected void TableAdapter<T>(Action<T> action) where T : IDisposable, new()
{
using (var connection = new SqlCeConnection(ConnectionString))
using (dynamic tableAdapter = new T())
{
tableAdapter.Connection = connection;
action(tableAdapter);
}
}
感谢丹,是的,我已经考虑过这种方法,但我想我更可能忘记在操作中设置连接而不是调用TableAdapter而不是表格适配器。 –