0

我开始编写一个项目,这是我第一次使用 ASP.NET MVC 和 Entity Framework(现在我已经使用 PHP 大约 5 年了)。

我有类别和帖子,每个类别都必须有自己独特的过滤器,可以是字符串或布尔值(我将通过文本框或复选框获取它们)。在设计实体时,我开始感到困惑。

我正在使用代码优先的方法,但不知道如何在实体框架中设置自定义字段。如果我在 PHP 和纯 SQL 中进行设计,我认为为了保持良好的性能,我会即时创建额外的列(例如“filter_1”、“filter_2”),然后创建包含字段,类型等的描述,我没有弄清楚这种实现是否可以在 EF 中实现。

我已经考虑了一些选项: - 在创建过滤器和过滤器值表时,我可以使用多对多关系创建过滤器,并且在创建帖子时将过滤器值添加到该表中。关于它的主要缺点是他的性能 - 我很可能肯定会有 40k+ 行和 20 多个自定义过滤器......所以搜索和数据获取会太慢...... - 我考虑过将过滤后的值序列化为一些内容的形式,例如转换为字节数组,然后只对其进行消毒 - 但问题是我无法在其中进行搜索...... - 我可以使用传统的 ADO.NET 方式来创建我的初始想法(我在谈论 PHP 时已经描述过 - 使用“filter_N”列)但这会给 EF 造成太多混乱......

还有其他方法可以实现我的目标(创建自定义过滤器)吗?有什么方法可以使用 EF 创建自定义字段?

谢谢你的帮助!

4

1 回答 1

0

我不知道在实体框架中实现这一点的好方法。如果你真的想使用实体框架,我相信你可以设计你的数据库表,这样你就不必动态创建额外的列。您可以有单独的表格来保存过滤器并将它们与类别相关联。

于 2012-09-18T03:37:03.960 回答