2012-09-18 47 views
0

我开始编写一个项目,并且第一次使用ASP.NET MVC和Entity Framework(因为现在我已经使用了PHP大约5年)。使用实体框架的自定义字段5

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

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

我想过一些选项: - 我可以在创建过滤器和过滤器值表以及创建过帐时将过滤器值添加到该表中,使用多对多关系创建过滤器。关于它的主要con是,他的表现 - 我会最有可能有40K +行,肯定超过20个自定义过滤器......所以搜索和数据提取将是太慢了...... - 我想到了序列化过滤值成某种形式的内容,例如成字节数组,然后只desterilize - 但问题是,我将无法内搜索... - 我可以以创建使用传统ADO.NET方式我最初的想法(当谈论PHP,我已经描述 - 使用“filter_N”列),但会创建EF太多乱七八糟......

有任何其他的方式来实现我的目标(创建自定义过滤器)?任何使用EF创建自定义字段的方法?

感谢您的帮助!

+0

实体框架不适用于您希望在运行时更改数据库的情况。如果您想使用EF,您应该为过滤器和值分开表格,并正确设置索引以解决性能问题。当你正确设置索引时,40k行并不是什么大不了的事。 –

+0

谢谢!我想我会遵循您的建议并使用模型创建它。 你能将你的评论标记为答案吗? –

回答

0

我不知道在实体框架中执行此操作的好方法。如果你真的想使用实体框架,我相信你可以设计你的数据库表,这样你就不必在飞行中创建额外的列。你可以有单独的表来保存过滤器并将它们关联到类别。