我在配置自己的数据库和使用管理语言的实体框架制作应用程序的相关代码隐藏时遇到问题。
通常,在我的旧项目中,我有一个表,比如说Pages,其中包含标识单个页面的唯一行,并带有标准信息(根本不需要翻译):
ID
Author
Date
Location
附加到这个我有一个包含语言数据的支持表Pages_L (1-N),因此为每个页面行翻译了特定信息:
ID
ID_PAGE
LANGUAGE
Title
Description
Notes
好吧,数据库的标准配置!没有数据冗余。
现在问题出现在实体框架中,因为对于我要提取的特定页面,我每次都需要进行选择:
1 - first the page (a `.Where`);
2 - than select the language (another `.Where`)
3 - finally, select the field I want (let say, `Title`)
我发现这是一个烦人的过程,因为当我进行查询时,我只需要提取固定语言的数据。我的意思是:当我的申请正在处理时,语言总是一种。我不提取一些英文,一些意大利文,一些法文等等。
所以我想要实现的是整个上下文的一种“起始语言点”。在以后的阶段,我只需要这样做:
Pages.Where(p=>p.ID==myID).FirstOrDefault().Title
每次都没有通过处理Pages_L表。
问题是:我可以用实体框架以某种方式做到这一点吗?我可以更改项目中的所有内容,因此每个建议都会很好!(从 DB,到实体框架,再到其他供应策略)。