2010-02-23 114 views
1

我已經具有以下方法簽名一個接口:鑄造中的LINQ to SQL

public interface ITag 
{ 
    int M_Id { get; set; } 
    string M_Name { get; set; } 
} 

而且我有一個實現上述接口的類:

[Table(Name="News")] 
public class NewsTag:ITag 
{ 
    [Column(Name="id",isPrimaryKey = true)] 
    public int M_Id 
    { 
     get; set; 
    } 

    [Column(Name = "name")] 
    public string M_Name 
    { 
     get; set; 
    } 

    [Column(Name = "extraField")] 
    public string M_ExtraField 
    { 
     get; 
     set; 
    } 
} 

,我想找回從我的分貝行,並將它們發送

public IQueryable<ITag> fGetNewsTags(int id) 
{ 
    var result = from news in context.GetTable<NewsTag>() 
       where news.M_Id == id 
       select news; 

    return (IQueryable<ITag>)result; 
} 

但問題是,鑄造(返程(IQueryable的)結果;)我很牛逼儘管NewsTag是ITag界面的子類,但即使使用也不起作用。

任何幫助,將不勝感激。

回答

5

嘗試以下

public IQueryable<ITag> fGetNewsTags(int id) 
{ 
    var result = from news in context.GetTable<NewsTag>() 
       where news.M_Id == id 
       select (ITag)news; 

    return result; 
}