【发布时间】:2011-04-23 04:30:24
【问题描述】:
更新
检查 StackOverflow OData service 与 Posts / PostTags / Tags 完全一样...请问我该如何复制它?
所以我有一个名为 BlogPost 的简单类 - 没什么特别的。只是一篇博文。现在,我想为这个类添加标签。与 StackOverflow 问题的 标签 完全一样 - 5 个字符串,以空格分隔。然后使用 Entity Framework 4 将此数据保存到我的 Sql Server 2008 数据库中。
所以,起初我以为我可以添加 ICollection<string> Tags { get; set; } 或 StringCollection Tags { get; set; }
对于数据库,只需有一个名为 Tags 的新表,它是 BlogPost 的外键和 VarChar(100) Tag 字段。
但后来我想,如果我这样做,我只会在那个数据库表中有很多重复的标签。有没有可能有两张桌子,也许吧。
- BlogPostsToTags
- 标签
标签都是唯一的实例。
现在这很容易在 DB 中建模,但我不知道如何在 EF 中执行此操作?这是建模的好方法吗?这就是SO在这里所做的吗?
我真的很喜欢ICollection<string> Tags { get; set; }(它又好又干净),但我不确定如何使用 EF 作为我的数据访问权限,并且在数据库中拥有唯一标签。
我只是不知道如何为博文添加一些标签,并确保标签是唯一的,但仍然引用回博文。
就像,这应该是数据库的责任,所以当我尝试保存博客文章时,那时我是否唯一地处理标签..首先检查它们是否存在,然后插入或更新唯一标签。 . 并在 BlogPostsToTags 表中使用此参考 ID?竞争条件会发生什么?我是否需要为此使用事务...如果需要...如果表被锁定,读取性能如何?
【问题讨论】:
标签: .net sql-server entity-framework architecture tags