0

我正在使用 asp.net 和 c# 开发一个多语言新闻门户网站。目前该网站支持两种语言,并会在需要时扩展到其他附加语言。因此,我的工作是为网站创建基本框架。根据客户的要求,不同语言的网站要存储在数据库中的内容可能会有所不同。因此,我创建了不同的表来存储不同语言的新闻(如 tblNews_EN、tblNews_am 等),以存储英语或阿姆哈拉语的内容。

现在我有类来检索最新消息,但我想概括这些类并检索用户请求的特定文化的最新消息。最初我有类似下面的东西,它只能从 tblNews_EN 表中检索最新消息。

public IQueryable<GetNews> GetTopExtraNews()
 {

        var topExtraNews = from p in db.GetNews
                           where p.TopOrderPriority == 2
                           orderby p.NewsDate descending
                           select p;
        return topExtraNews;
}

这里 GetNews 是我的 Entity 类,它对应于 tblNews_EN 表。

现在我想概括这一点,以便它根据所选的文化从不同的表中返回对象。我尝试使用 IQueryable 之类的东西,但我认为这不是处理我的情况的最佳选择。那么,有没有更好的选择来做到这一点?

4

1 回答 1

0

如果我理解得很好,您的所有表格都具有相同的结构。

基于此,只需将表作为参数发送到您的方法并将此参数用于您的查询:

public IQueryable<GetNews> GetTopExtraNews(typeofYourTable myTable)
{

        var topExtraNews = from p in myTable
                           where p.TopOrderPriority == 2
                           orderby p.NewsDate descending
                           select p;
        return topExtraNews;
}

当然,在调用您的方法之前,您必须将 myTable 参数设置为正确的语言表。

于 2012-04-29T06:05:20.837 回答