我开始编写一个项目,这是我第一次使用ASP.NET MVC和Entity Framework(从现在起我已经使用PHP大约5年了。)
我有类别和帖子,每个类别都必须有自己独特的过滤器,可以是字符串或布尔(我会通过文本框或复选框获取它们)。在设计实体时我开始感到困惑。
我正在使用代码优先方法,但不知道如何在Entity Framework中设置自定义字段。如果我在PHP和纯SQL中设计它,我认为为了保持良好的性能,我会动态创建额外的列(例如“filter_1”,“filter_2”),然后创建包含字段的描述,类型等,我没有弄清楚EF中是否可以实现这种实现。
我考虑过一些选择: - 我可以在创建过滤器和过滤器值表时使用多对多关系创建过滤器,并在创建帖子时将过滤器值添加到该表中。关于它的主要问题是他的表现 - 我很可能有40k +行和超过20个自定义过滤器肯定...因此搜索和数据获取将太慢... - 我想过将过滤后的值序列化为某种形式的内容,例如字节数组然后只去消毒它 - 但问题是我无法在那里搜索... - 我可以使用传统的ADO.NET方式来创建我最初的想法(我在谈论PHP时已经描述过 - 使用“filter_N”列)但是这会给EF带来太多麻烦...
还有其他方法可以实现我的目标(创建自定义过滤器)吗?任何使用EF创建自定义字段的方法?
感谢您的帮助!
答案 0 :(得分:0)
我不知道在实体框架中实现这一点的好方法。如果你真的想使用实体框架,我相信你可以设计你的数据库表,这样你就不必动态创建额外的列。您可以使用单独的表来保存过滤器并将它们与类别相关联。