uza*_*y95 1 c# casting linq-to-sql
我有一个界面有以下方法签名:
public interface ITag
{
int M_Id { get; set; }
string M_Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我有一个实现上面接口的类:
[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;
}
}
Run Code Online (Sandbox Code Playgroud)
我想从我的数据库中检索行并发送它们
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;
}
Run Code Online (Sandbox Code Playgroud)
但问题是即使NewsTag是ITag接口的子类,我尝试使用的转换(返回(IQueryable)结果;)也无法正常工作.
任何帮助,将不胜感激.
小智 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;
}
Run Code Online (Sandbox Code Playgroud)