C# 插入到多对多表中在EntityRef中不可见-可能有什么问题?
我对LINQ To SQL有一个奇怪的问题: 我有3个表-feed、FeedTags和Tags-其中FeedTags是feed和Tags的m:n表 我所做的是在Feed中插入一条新记录,然后在FeedTags中为这个新Feed插入一条新记录 我的问题是,即使我从DB查询新的提要对象,Feed.FeedTags属性(FeedTags的EntityRef)也是空的(0条记录): 标签在这里有0条记录。如果我只查询Feed对象,它将正确返回,但也有0个FeedTags记录 但是,当我明确地查询FeedTags表以查找具有新FeedId的FeedTags时,我将返回创建的标记:C# 插入到多对多表中在EntityRef中不可见-可能有什么问题?,c#,linq,linq-to-sql,C#,Linq,Linq To Sql,我对LINQ To SQL有一个奇怪的问题: 我有3个表-feed、FeedTags和Tags-其中FeedTags是feed和Tags的m:n表 我所做的是在Feed中插入一条新记录,然后在FeedTags中为这个新Feed插入一条新记录 我的问题是,即使我从DB查询新的提要对象,Feed.FeedTags属性(FeedTags的EntityRef)也是空的(0条记录): 标签在这里有0条记录。如果我只查询Feed对象,它将正确返回,但也有0个FeedTags记录 但是,当我明确地查询Feed
// Works as expected:
var feedTag = context.FeedTags.Single(ft => ft.FeedId = newFeed.Id && ft.TagId == newTag.Id);
因此,很明显,所有内容都正确插入,但出于某种原因,父对象确实包含创建的FeedTags。这里可能出了什么问题
当我重新启动应用程序时,一切都恢复正常,对Feeds表的新查询也将包括所有创建的FeedTags
我不知道从哪里开始寻找-也许有人曾经经历过,可以告诉我正确的方向
非常感谢 可能
newFeed.FeedTags.Add(newTag)
效果更好。(而不是context.FeedTags.InsertOnSubmit(newTag);
)//稍微简化一点,添加提要和标记发生在不同的函数=>这是否意味着不同的数据上下文?@Pleun。。。不,所有操作都使用相同的DataContext。编辑:现在正如你提到的。。。因为它是相同的数据上下文。。。这可能是缓存问题吗?但我试图通过再次查询对象而不是重新使用现有实体来解决这个问题…@GertArnold尝试了这个方法,不幸的是,效果相同
// Works as expected:
var feedTag = context.FeedTags.Single(ft => ft.FeedId = newFeed.Id && ft.TagId == newTag.Id);