Linq to sql 如何使用asp.net mvc在以逗号分隔的表列中存储int值

Linq to sql 如何使用asp.net mvc在以逗号分隔的表列中存储int值,linq-to-sql,database-design,Linq To Sql,Database Design,我有一个叫做评论的表格。对于每个注释,我都有注释Id 在我的用户屏幕上,我可以为每个用户添加多条评论。。因此注释id需要存储为1,2,3,。。等这意味着我为用户添加了1 2 3个注释ID 如何将这些逗号分隔的值存储到表列中 谢谢不要。使用包含UserID和CommentID列的联接表将用户与其注释链接起来。然后,您可以通过user、UserComments和comments表之间的三向联接获取用户的注释集 select Comments.* from Users inner join UserC

我有一个叫做评论的表格。对于每个注释,我都有注释Id

在我的用户屏幕上,我可以为每个用户添加多条评论。。因此注释id需要存储为1,2,3,。。等这意味着我为用户添加了1 2 3个注释ID

如何将这些逗号分隔的值存储到表列中


谢谢

不要。使用包含UserID和CommentID列的联接表将用户与其注释链接起来。然后,您可以通过
user
UserComments
comments
表之间的三向联接获取用户的注释集

select Comments.*
from Users inner join UserComments on Users.UserID == UserComments.UserID
           inner join Comments on UserComments.CommentID == Comments.CommentID
where Users.UserID == @userid
其中@userid是相关用户的id

使用LINQ,您只需引用适当的实体集,可能还需要使用
SelectMany

var comments = context.Users
                      .Where( u => u.UserID == userid )
                      .SelectMany( u => u.UserComments
                                         .SelectMany( uc => uc.Comments ) );

不要。使用包含UserID和CommentID列的联接表将用户与其注释链接起来。然后,您可以通过
user
UserComments
comments
表之间的三向联接获取用户的注释集

select Comments.*
from Users inner join UserComments on Users.UserID == UserComments.UserID
           inner join Comments on UserComments.CommentID == Comments.CommentID
where Users.UserID == @userid
其中@userid是相关用户的id

使用LINQ,您只需引用适当的实体集,可能还需要使用
SelectMany

var comments = context.Users
                      .Where( u => u.UserID == userid )
                      .SelectMany( u => u.UserComments
                                         .SelectMany( uc => uc.Comments ) );

如果这是可扩展的,并用于长途运输,不要这样做。创建另一个表以将注释映射到用户。归一化是一开始就要做的工作,但最后工作较少。每当你考虑逗号分隔的列表时,你需要另一个相关的表。数据不应存储为逗号删除列表。如果这是为了可扩展并用于长期使用,请不要这样做。创建另一个表以将注释映射到用户。归一化是一开始就要做的工作,但最后工作较少。每当你考虑逗号分隔的列表时,你需要另一个相关的表。数据不应存储为逗号删除列表。