2010-03-31 2 views
2

오브젝트가 SQL에서 Linq 유형인지 점검하는 쉬운 방법이 있다면 누구나 아는 사람이 있습니까? 이 방법은 있지만 유효한 형식 만 받아들이고 싶습니다.object가 linq 유형의 SQL인지 확인하는 방법

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

좋아, 고마워,하지만 내가 뭘 찾고있는 개체 (매개 변수로 linq 테이블을 사용할 수 있도록 업데이트 (params 개체 [] 항목)와 함께 개체를 대체 할 수 있습니다 찾고 있어요. – remdao

+0

@remado : 무슨 뜻인지 이해가 안됩니다. 내가 준 응답은 개체의 유형을 확인하여 LINQ와 함께 사용할 수 있는지 확인하는 메커니즘을 제공합니다. – casperOne

관련 문제