+2007-11-15 Atsushi Enomoto <atsushi@ximian.com>
+
+ * DbProviderFactoriesConfigurationHandler.cs : Create() now takes
+ parent DataSet into consideration i.e. it now merges items in
+ different configurations. Fixed bug #323708.
+
2007-10-21 Gert Driesen <drieseng@users.sourceforge.net>
* DbDataPermissionAttribute.cs: In KeyRestrictionBehavior, reuse
public virtual object Create (object parent, object configContext, XmlNode section)
{
- DataSet ds = new DataSet (DbProviderFactories.CONFIG_SECTION_NAME);
- CreateDataTables (ds, section);
+ DataSet ds = parent as DataSet ?? CreateDataSet ();
+ FillDataTables (ds, section);
return ds;
}
- internal virtual void CreateDataTables (DataSet ds, XmlNode section)
+ DataSet CreateDataSet ()
{
+ DataSet ds = new DataSet (DbProviderFactories.CONFIG_SECTION_NAME);
DataTable dt = ds.Tables.Add (DbProviderFactories.CONFIG_SEC_TABLE_NAME);
DataColumn [] columns = new DataColumn [4];
columns [0] = new DataColumn ("Name", typeof (string));
columns [3] = new DataColumn ("AssemblyQualifiedName", typeof (string));
dt.Columns.AddRange (columns);
dt.PrimaryKey = new DataColumn [] { columns [2] };
+ return ds;
+ }
+ void FillDataTables (DataSet ds, XmlNode section)
+ {
+ DataTable dt = ds.Tables [0];
foreach (XmlNode node in section.ChildNodes) {
if (node.NodeType != XmlNodeType.Element)
continue;