C# 我是否应该使用ORM对大型树结构建模?

C# 我是否应该使用ORM对大型树结构建模?,c#,entity-framework,orm,C#,Entity Framework,Orm,我们正在开发一个视频点播系统,用户可以上传视频。我们希望创建一个视频存档的树状结构,用户可以在其中创建艺术家/相册等文件夹,并将视频存储在正确的文件夹下。与所有树结构一样,用户将能够在文件夹之间移动视频、删除子树、复制视频以及移动子树和子树 这棵树可能有1000个视频和文件夹中的10个 我的问题是ORM是否适合这种大小的树状结构?假设数据库中的树状结构是类似于以下表格的: FolderId | ParentFolderId | FolderName 为什么不呢 问题不是你是否应该使用ORM,问题

我们正在开发一个视频点播系统,用户可以上传视频。我们希望创建一个视频存档的树状结构,用户可以在其中创建艺术家/相册等文件夹,并将视频存储在正确的文件夹下。与所有树结构一样,用户将能够在文件夹之间移动视频、删除子树、复制视频以及移动子树和子树

这棵树可能有1000个视频和文件夹中的10个


我的问题是ORM是否适合这种大小的树状结构?

假设数据库中的树状结构是类似于以下表格的:

FolderId | ParentFolderId | FolderName

为什么不呢


问题不是你是否应该使用ORM,问题是你有什么问题需要ORM来解决。

目前我们必须决定如何保存数据。根据项目的时间尺度,学习ORM可能很困难。有了这个表结构,我想我可以手工制作SQL?“有了这个表结构,我想我可以手工制作SQL?”正是我所想的,除非你有一个复杂/大型的数据结构,否则不要使用ORM。首先你需要定义你的数据和业务逻辑。然后,您应该考虑如何持久化它,以及如何轻松访问它。我不能回答你提出的“手工编写SQL”的问题,因为我不知道你的用例。例如,如果我需要一次性加载整个树,为什么不将此表加入权限表以获取属于某个用户的所有文件夹?或者,如果我只需要在用户导航到下一个级别时加载,为什么我不能请求“Where(x=>x.ParentId=selectedId)”?我完全可以使用任何ORM来实现这一目的。或者没有ORM,因为它很简单。或者写一个SP。