如果您在解決方案資源管理器中的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>
並更新產品ID。
Awsome!非常感謝您的幫助! – Mathieu 2010-11-14 22:30:39
雖然有一點細節。您的代碼在「public int ProductID {get; set;}」中提供了一個錯誤,指出「public」修飾符在那裏是錯誤的。但是,如果它不公開,我怎樣才能訪問ProductID表字段?再次感謝! – Mathieu 2010-11-15 02:38:25
@Mathieu,我更新了我的答案,接口成員應該沒有公共修飾符,它們是隱式公開的。 – 2010-11-15 06:18:21