Как управлять несколькими таблицами с одинаковой структурой - PullRequest
0 голосов
/ 15 ноября 2010

У меня есть несколько таблиц с одинаковой структурой (например, Queue1, Queue2 и т. Д.). Я должен держать их отдельно по административным причинам. Некоторые таблицы очередей могут быть созданы приложением.

Я использую контекст данных и linq и C #.

Теперь я хочу выполнить операцию над всеми таблицами. Я получаю свои столы таким образом.

        IEnumerable<MetaTable> tables = appelsDataContext.Mapping.GetTables();
        foreach (MetaTable table in tables)
        {
        }

Проще говоря, я хочу обновить поле userID во всех этих таблицах. Я понятия не имею, как это сделать, потому что с моей точки зрения dataContext, хотя таблицы имеют одинаковую структуру, все они являются разными сущностями.

Большое спасибо за любую помощь, которую вы можете оказать. Ценится! Матье

1 Ответ

1 голос
/ 15 ноября 2010

Если вы загляните в свой файл DataClasses1.designer.cs (или как вы его назвали) в dbml-файл в обозревателе решений, вы найдете ваши классы такими:

[global::System.Data.Linq.Mapping.TableAttribute(Name="Production.Product")]
public partial class Product : INotifyPropertyChanging, INotifyPropertyChanged
{
//...
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProductID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
public int ProductID
{
    get
    {
        return this._ProductID;
    }
    set
    {
        if ((this._ProductID != value))
        {
            this.OnProductIDChanging(value);
            this.SendPropertyChanging();
            this._ProductID = value;
            this.SendPropertyChanged("ProductID");
            this.OnProductIDChanged();
        }
    }
}
//...
}

и т.д.

Если вы создаете интерфейс

public interface ITableHasProductId
{
    int ProductID {get; set;}
}

вы можете применить этот интерфейс ко всем вашим таблицам, поместите следующий код в отдельный файл (чтобы избежать потери ваших изменений при регенерации контекста данных)

public partial class Product : ITableHasProductId {}

Затем вы можете поместить все свои таблицы в IEnumrable<ITableHasProductId> и обновить ProductID.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...