Приведение в Linq To SQL - PullRequest
       15

Приведение в Linq To SQL

1 голос
/ 23 февраля 2010

У меня есть один интерфейс, который имеет следующие сигнатуры методов:

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;
}

Но проблема в том, что результат приведения (return (IQueryable);), который я пытаюсь использовать, не работает, даже если NewsTag является дочерним классом интерфейса ITag.

Любая помощь будет оценена.

1 Ответ

5 голосов
/ 23 февраля 2010

попробуйте следующий

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

    return result;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...