【发布时间】:2018-12-27 01:54:29
【问题描述】:
我想在我的 ASP.Net Core 应用程序中使用对象的链接列表。为简单起见,我将使用 blog 和 cmets;尽管真实的上下文要复杂得多。
我搭建了两个表,并将ICollection<Comment> 更改为LinkedList<Comment>。但是,如果我创建一个初始迁移并应用到一个空数据库,我不会在数据库中得到任何“链接”(没有下一个或上一个)。另外,如果我播种数据,然后执行以下操作:
var comments = _context.blogs.First().Comments
我收到null。如果我离开public virtual ICollection<Comment> Comments,我得到IEnumerable 就好了。
我尝试改用LinkedList<LinkedListNode<Comment>>,除非我尝试创建迁移,否则效果很好。报错
没有为实体类型“LinkedListNode”找到合适的构造函数。以下构造函数具有无法绑定到实体类型属性的参数:无法在 'LinkedListNode(Comment value)' 中绑定 'value';无法在“LinkedListNode(LinkedList 列表,注释值)”中绑定“列表”、“值”。
我找不到如何在 C#/.NET Core 中实现 LinkedList 的任何指导(显然,我可以手动完成,有 next 和 prev 字段 - 但我更喜欢使用框架功能,如果可能的话!)
【问题讨论】:
-
据我所知,对此没有标准的框架方法(我可能是错的),您似乎必须自己管理它
-
谢谢。显然,我希望得到不同的答案;但很高兴知道我没有错过明显的东西:)
-
您可以覆盖保存更改,或者 gasp 创建服务器端触发器(尽管这两个似乎都充满了问题)
-
您可能想查看stackoverflow.com/questions/24033924/…。我很确定你可以做到这一点,你只需要正确地创建模型。也许您可以在这里发布模型和上下文代码,我们可以指出您的问题。
-
谢谢,@GlennSills。我想你误解了这个问题。我没有手动设计链接列表时遇到问题。我不想想要。我想使用 .NET 内置的
LinkedList和(可能)LinkedListNode类。您链接到的帖子没有提到任何这些。看起来我想要做的是不可能 - 所以我已经手动完成了。注意:其中一个答案提到了LinkedListNode类,但它看起来像海报的自定义类;模糊的框架类。我绝对不想做的事情
标签: c# asp.net-core linked-list entity-framework-core