2010-03-31 109 views
2

任何人都知道是否有任何簡單的方法來檢查對象是否爲sql到linq類型?我有這樣的方法,但希望它只接受有效的類型。如何檢查對象是否爲sql到linq類型

public static void Update(params object[] items) 
{ 
    using (TheDataContext dc = new TheDataContext()) 
    { 
     System.Data.Linq.ITable table; 

     if(items.Length > 0) 
      table = dc.GetTable(items[0].GetType()); 

     for (int i = 0; i < items.Length; i++) 
     { 
      table.Attach(items[i]); 
      dc.Refresh(System.Data.Linq.RefreshMode.KeepCurrentValues, 
       items[i]); 
     } 

     dc.SubmitChanges(); 
    } 
} 

回答

1

您將要訪問從Mapping property on the DataContext instance返回的MetaModel實例。

因此,您可以調用GetTable方法,在當前的LINQ-to-SQL方案中支持要確定的模型類型。

請注意,這只是在模型,如果你想檢查它是否存在於數據庫中,那麼這是一個不同的故事,你將不得不自己處理。但是,這並不難。從GetTable返回的MetaTable實例中,可以使用TableName property來獲取數據庫中存在的表的名稱,然後根據模型上的映射來查詢數據庫中是否存在該表。

+0

好的,謝謝,但我正在尋找的是在Update(params對象[]項)中替換對象的東西,以便它只能使用linq表作爲參數。 – remdao 2010-04-01 06:23:52

+0

@remado:我不明白你的意思。我給出的答案爲您提供了可以檢查對象類型的機制,以確保它們可以與LINQ一起使用。 – casperOne 2010-04-01 14:48:00

相關問題