我是 .NET 和 EF 的新手,我正在开发一个需要动态查询实体的应用程序。我有一个带有 3 个表的数据库:
**Employee** **EmployeeSkills** **Skill**
Employee_ID Id Skill_ID
Name Employee_ID Name
Address Skill_ID etc.
etc. Level
我将从我的客户端发送用于选择的属性名称和带有用于过滤的属性值对的字典,例如 {"name", "skill",[{"skillId="1"},{"level=2"}] } 将返回所有具有 id 1 相关技能和 2 级该技能知识的员工。
我真的需要设计我的实体,使查询尽可能简单,这意味着没有连接或复杂的 sql。我已经设法实现了用于选择和过滤属性的所有内容,但我仍在为多对多关系而苦苦挣扎。
我知道,如果我的中间表只有 Employee_ID 和 Skill_ID 字段,那么我可以使用 Employee.Skills 引用技能。有没有办法使用我当前的表结构来解决这个问题?
我希望有某种映射,例如在 Employee 实体上定义某种导航属性,该属性存储获取具有其级别的员工的所有技能所需的查询。
PS 我使用的是 VS 2012,EF 运行时版本 4.0.3,版本 4.4.0