Mik*_*ike 11 c# entity-framework-6
我正在尝试将旧项目从Linq2Sql迁移到EF6,我遇到了以下问题.
这个项目是多语言的(即所有文本都有超过1个翻译),我有以下数据库结构:
获取所有使用当前语言ID筛选的所有LocalizedContent记录的ExampleEntity1对象的最佳方法是什么?
我可以使用以下代码加载所有带有所有LocalizedContent记录的ExampleEntity1对象:
dc.ExampleEntity1.Include(ee => ee.TextEntry.LocalizedContents);
在Linq2Sql中我可以使用过滤LocalizedContent记录,loadOptions.AssociateWith但我找不到任何EF6的解决方案.
我看到了类似的旧问题(2 - 3年前发布),我只是想知道EF6是否有解决方案.这对我来说是一个非常关键的功能,因为我在项目中有几十个实体,我不想为每个选择查询创建自定义对象.
我还发现了EntityFramework.DynamicFilters nuget包可以帮助解决我的问题,但我更愿意使用"原生"EF6功能.
请注意,当前无法过滤加载哪些相关实体。包含将始终引入所有相关实体。
var result = dc.ExampleEntity1.Include(ee =>ee.TextEntry.LocalizedContents)
.Select(x=>new
{
//Try anonymous or a projection to your model.
//As this Select is IQuerable Extension it will execute in the data store and only retrieve filtered data.
exampleEntity = x,
localizedContetnt = x.TextEntry.LocalizedContents.Where(g=>g.Id==YourKey),
}).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
您可以尝试匿名投影来过滤包含实体中的内容
| 归档时间: |
|
| 查看次数: |
5270 次 |
| 最近记录: |