2013-11-09 70 views
0

我有一个方法,用于从我的表中获取名为ItemNumber,ItemDescription,UnitDescription选定行的3列的值。我已经传递了该选定行的参数ItemId,并且必须获取不同变量中的每个列值。我不知道如何在它的工作。可谁能告诉我该怎么做this.Here是我的代码 -如何从此方法获取列值?

public System.Collections.IEnumerable FetchDataItem(int id) 
    { 
     var row = (from t1 in context.InventoryUnit 
        join t2 in context.InventoryItem on t1.UnitId equals t2.UnitId 
        where t2.ItemId == id 
        orderby t2.ItemNumber, t2.ItemDescription 
        select new 
        { 

        t2.ItemNumber, 
        t2.ItemDescription, 
        t1.UnitDescription 
        }); 


     return row.ToList(); 
    } 
+0

请务必设置您的返回类型在你的'的IEnumerable '的'IEnumerable的' –

回答

0

Satpal给了一个很好的例子,但是如果你不想创建一个类你可以使用它并将其选为匿名类型。

public static void Main() 
{ 
    // Short example... 
    var rows = (from t1 in context.InventoryUnit 
       join t2 in context.InventoryItem on t1.UnitId equals t2.UnitId 
       where t2.ItemId == id 
       orderby t2.ItemNumber, t2.ItemDescription 
       select new 
       { 
        ItemNumber = t2.ItemNumber, 
        ItemDescription = t2.ItemDescription, 
        UnitDescription = t1.UnitDescription 
       }); 

    // Here you still have access to data and the types of the data. 

    foreach (var row in row) 
    { 
     // do something with the data.... 
     var someint = row.ItemNumber; 
     var someString = row.ItemDescription; 
     var someotherstring = row.ItemDescription; 
    } 
} 
+0

我将如何分配由每列返回类型为int(用于ItemNumber),字符串的3个不同的变量(值为ItemDescription)和字符串(用于UnitDescription) – user2718073

+0

@ user2718073已更新。不理会关于返回'IEnumerable '的声明。你将不得不用相同的方法来使用它。 –