.net linq到sql(VS 2010)-插入不';行不通
我有一个包含我的数据上下文的类:.net linq到sql(VS 2010)-插入不';行不通,.net,visual-studio-2010,linq-to-sql,c#-4.0,.net,Visual Studio 2010,Linq To Sql,C# 4.0,我有一个包含我的数据上下文的类: private static drDataContext db = new drDataContext(); 我还有一个方法: public static void InsertSelfRatings(List<DeveloperSelfRating> ratings) { foreach (DeveloperSelfRating sr in ratings) { db.Develo
private static drDataContext db = new drDataContext();
我还有一个方法:
public static void InsertSelfRatings(List<DeveloperSelfRating> ratings)
{
foreach (DeveloperSelfRating sr in ratings)
{
db.DeveloperSelfRatings.InsertOnSubmit(sr);
}
// db.DeveloperSelfRatings.InsertAllOnSubmit(ratings);
db.SubmitChanges();
}
public static void InsertSelfRatings(列表评级)
{
foreach(开发者自评等级sr)
{
db.DeveloperSelfRatings.InsertOnSubmit(sr);
}
//db.DeveloperSelfRatings.InsertAllOnSubmit(评级);
db.SubmitChanges();
}
我尝试了InsertOnSubmit()和InsertAllOnSubmit(),但遇到了相同的问题-只有“评级”列表中的最后一条记录(DeveloperSelfRating对象)被插入到数据库中
这个问题的原因可能是什么
谢谢 您只需将这一行放入db.SubmitChanges();在foreach循环中 公共静态void InsertSelfRatings(列表评级) { 因为当您在linq中插入一条记录时,您必须提交更改,因此在每次插入之后,您必须写入db.SubmitChanges();
只要试试这个ok检查你的评分集合,它的记录是否超过1,并且所有的记录都不同……看看这篇文章-我想它可能会有一些启示:尝试返回InsertAllOnSubmit。这应该会起作用。如果不起作用,配置文件并查看生成的SQL。你添加的评分都是新的吗?你的DB是否使用标识作为PK?@Pranay R安娜:非常感谢!!!愚蠢的我!我的问题是我传递给方法的列表!是
DeveloperSelfRating
一个类还是一个结构?,因为当你在linq中插入一条记录时,你必须提交更改
@Michael Stum:但是如果我们必须通过创建列表来插入所有记录,然后我们必须编写InsertAllOnSubmit()
foreach (DeveloperSelfRating sr in ratings)
{
db.DeveloperSelfRatings.InsertOnSubmit(sr);
db.SubmitChanges();
}
}