C# 处理和计算保存在数据库中的公式

C# 处理和计算保存在数据库中的公式,c#,.net,database,linq,entity-framework,C#,.net,Database,Linq,Entity Framework,以下链接描述数据库中的非关系字段类型: 字段类型之一是公式字段: 公式-保存公式生成的数据的只读字段 表情 我使用c#和实体框架作为开发工具。这个应用程序中的业务逻辑将在几个月内改变。我想让系统管理员(一些用户)定义应用程序的公式并存储在数据库中。 我的问题:如何计算公式,用c#动态存储在数据库中 (公式包含:静态值、字段名、函数、运算符和…) 你的想法是什么 我可以将公式(字符串)转换为linq查询并执行Dynamicly吗 想到两个选项: 如果操作相当简单,您可以查看新的。Rosly

以下链接描述数据库中的非关系字段类型:

字段类型之一是公式字段:

公式-保存公式生成的数据的只读字段 表情

我使用c#和实体框架作为开发工具。这个应用程序中的业务逻辑将在几个月内改变。我想让系统管理员(一些用户)定义应用程序的公式并存储在数据库中。 我的问题:如何计算公式,用c#动态存储在数据库中 (公式包含:静态值、字段名、函数、运算符和…)

你的想法是什么

  • 我可以将公式(字符串)转换为linq查询并执行Dynamicly吗

想到两个选项:

  • 如果操作相当简单,您可以查看新的。Roslyn是一个新的Visual Studio托管编译器,您可以在自己的代码中使用它。它让您可以轻松地编译代码片段并执行它们
  • 另一个你可以看到的是表达式树。使用可以序列化表达式树,并可能将其保存在数据库中。但是,您需要某种用户界面来构建这些表达式树。在上,您可以找到一些如何手动构造表达式树的示例

如何在表达式树序列化程序中使用公式(字符串)?!!必须将公式表示为表达式树。这比简单的“a+b”字符串复杂得多,但它使您能够灵活地将其保存到数据库中,并在运行时编译和执行它。