我想写一个简单的表达语言&用于小型数据库应用程序的LINQ to Entities转换程序。翻译者应该简单地将表达式翻译成linq查询,例如
[Project Participants] > 50 AND [Project Duration in Months] < 4
应转换为与
类似的LINQ查询from p in projects where p.Participants.Count > 50 && p.Duration < 4 select p;
在运行时动态。
我的目标是将用户特定的约束存储在数据库中,并使用这些约束使用实体框架按需生成项目列表。做这种“翻译”的好习惯是什么?
非常感谢, 问候
答案 0 :(得分:1)
我的建议是使用ScottGu的动态LINQ库,在这里找到:
基本上,您可以将简单表达式语言解析为字符串,并使用一些YACC样式代码在运行时构建相应的LINQ查询部分。