我有几个具有相同结构的表(例如Queue1,Queue2等)。出于管理原因,我必须将它们分开。某些队列表可能由应用程序创建。
我正在使用数据上下文和linq和C#。
现在我想对所有表执行操作。我以这种方式回顾我的桌子。
IEnumerable<MetaTable> tables = appelsDataContext.Mapping.GetTables();
foreach (MetaTable table in tables)
{
}
简单地说,我想更新所有这些表中的userID字段。我不知道如何做到这一点,因为从我的dataContext的角度来看,即使表具有相同的结构,它们都是不同的实体。
非常感谢您提供的任何帮助。非常感谢! 马修
答案 0 :(得分:1)
如果你在解决方案资源管理器中的dbml文件下查看你的DataClasses1.designer.cs文件(或你命名的任何文件),你会发现你的类。
[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。