0

我有一个映射表,如:

Article_to_Categories

文章ID 类别ID

如何使用 linq2sql 插入此表?

4

2 回答 2

2

如果文章和类别表中存在相应的行,这应该与标准插入没有什么不同。

另一方面,如果这些表是空的,那么您需要在执行 SubmitChanges 之前将行插入到这些表中。

Linq-to-Sql 将为您管理优先级。

总而言之,我建议您只需尝试将行插入 Article_to_Categories 表中,看看会发生什么。


编辑:如果不明白如何在 Linq-to-Sql 中插入一行,请考虑网络上的示例:

于 2009-11-19T15:39:09.410 回答
0

根据我的经验,在像这样的关联表中插入记录时,我也遇到过类似的问题。对我有用的是尊重外键关系并添加对象而不仅仅是外键 ID。

例如,这对我不起作用:

var newRec = new Article_To_Categories
{
    Article_ID = 1,
    Category_ID = 2
};

DataContext.Article_To_Categories.InsertOnSubmit(newRec);
DataContext.SubmitChanges();

对我有用的是:

var newRec = new Article_To_Categories
{
    Article = DataContext.Articles.Where(a => a.Article_ID == 1).SingleOrDefault(),
    Category = DataContext.Articles.Where(a => a.Category_ID == 2).SingleOrDefault()
};

DataContext.Article_To_Categories.InsertOnSubmit(newRec);
DataContext.SubmitChanges();

根据我的研究,尽可能接近,如果我添加对象而不是 ID,则生成的 Article_To_Categories 对象将使用相关记录的内容正确更新。更新过程的一部分是通知不应重新插入相关记录。如果您只是使用 ID 更新新记录,我不相信 LINQ-to-SQL 会自动从 Article 和 Category 表中检索记录,这意味着这些相关记录将受到任何现有验证,无论是来自对象或数据库。

于 2010-01-03T18:56:31.517 回答