C# 通过读取表中的值来动态where子句

C# 通过读取表中的值来动态where子句,c#,sql,entity-framework,dynamic,where-clause,C#,Sql,Entity Framework,Dynamic,Where Clause,您能帮我获取学生“Lindsay”的类名和会话描述值阅读规则表吗 表名, 列名和 价值 专栏 试试这个: SELECT a.FirstName, b.ClassName, c.Description FROM Student a LEFT OUTER JOIN Rule r1 ON a.RuleID = r1.RuleID AND r1.[Table Name] = 'Class' AND r1.[Column Name] = 'ClassID' LEFT OUTER JOIN Rule r2

您能帮我获取学生“Lindsay”的类名和会话描述值阅读规则表吗
表名, 列名和 价值 专栏

试试这个:

SELECT a.FirstName, b.ClassName, c.Description FROM Student a
LEFT OUTER JOIN Rule r1 ON a.RuleID = r1.RuleID AND r1.[Table Name] = 'Class' AND r1.[Column Name] = 'ClassID'
LEFT OUTER JOIN Rule r2 ON a.RuleID = r2.RuleID AND r2.[Table Name] = 'Session' AND r2.[Column Name] = 'SessionID'
LEFT OUTER JOIN Class b ON b.ClassID = r1.Value
LEFT OUTER JOIN Session c ON c.SessionID = r2.Value
如果需要动态读取规则表,则可以首先使用动态sql和游标通过“rule”表,然后让“r1”与“r1.[table Name]”和“r1.[Column Name]”连接,并从游标中动态填充。

尝试以下操作:

SELECT a.FirstName, b.ClassName, c.Description FROM Student a
LEFT OUTER JOIN Rule r1 ON a.RuleID = r1.RuleID AND r1.[Table Name] = 'Class' AND r1.[Column Name] = 'ClassID'
LEFT OUTER JOIN Rule r2 ON a.RuleID = r2.RuleID AND r2.[Table Name] = 'Session' AND r2.[Column Name] = 'SessionID'
LEFT OUTER JOIN Class b ON b.ClassID = r1.Value
LEFT OUTER JOIN Session c ON c.SessionID = r2.Value

如果它需要动态读取规则表,那么您可以首先使用动态sql和游标通过“rule”表,只需将“r1”与“r1.[table Name]”和“r1.[Column Name]”连接起来,并从游标动态填充即可。

Yes Correct:),它应该这样输出,但是FROM子句应该从规则表中读取。选择Firstname、ClassName、Description from<我不清楚如何将其与规则表与TableName、ColumnName、value to reach类和session表关联(客户端可以在规则表上配置规则)>您在哪里尝试将表连接在一起?是的,通过读取规则表尝试连接。首先读取需要通过规则表连接的表,然后我必须连接。@cool:),这将是我要创建的最后一个SQL,但假设内部连接表存储在规则表上。我的问题是如何构造SQL,通过阅读它们并最终得出上面的SQL。我能做到吗?@razor你在寻找什么样的答案?一个给你们提示如何解决这个问题的人,或者一个给你们提供SQL的人?是的,正确:),它应该这样输出,但FROM子句应该从规则表中读取。选择Firstname、ClassName、Description from<我不清楚如何将其与规则表与TableName、ColumnName、value to reach类和session表关联(客户端可以在规则表上配置规则)>您在哪里尝试将表连接在一起?是的,通过读取规则表尝试连接。首先读取需要通过规则表连接的表,然后我必须连接。@cool:),这将是我要创建的最后一个SQL,但假设内部连接表存储在规则表上。我的问题是如何构造SQL,通过阅读它们并最终得出上面的SQL。我能做到吗?@razor你在寻找什么样的答案?一个给你们提示如何自己解决这个问题的人,还是一个给你们提供SQL的人?