我正在使用asp.net和c#开发一个多语种新闻门户网站。目前,该站点支持两种语言,并在需要时将其扩展为其他语言。因此,我的工作是为网站创建基本框架。根据客户要求,要存储在不同语言的网站数据库中的内容可能不同。所以,我创建了不同的表来存储不同语言的新闻(如tblNews_EN,tblNews_am等)来存储Enlish或Amharic语言的内容。
现在我有一些类可以检索最新的新闻,但是我希望对这些类进行概括,并检索用户请求的特定文化的最新消息。最初我有类似以下的内容,只能从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是我的实体类,对应于tblNews_EN表。
现在我想概括这个,以便它将根据所选的文化返回不同表中的对象。我尝试使用类似IQueryable的东西,但我不认为这是处理我的情况的最佳选择。那么,还有更好的选择吗?
答案 0 :(得分: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参数设置为正确的语言表。