C# Linq不使用InsertOnSubmit()向表中添加数据(&;提交更改()
我正在使用LINQ将数据插入数据库。问题是执行代码后,数据没有添加到表中 以下是我的工作: 执行代码→ 转到服务器资源管理器中的“数据连接”→ 刷新表格 但表中没有显示任何行 下面是我的代码。任何帮助都将不胜感激。谢谢C# Linq不使用InsertOnSubmit()向表中添加数据(&;提交更改(),c#,sql-server,linq,linq-to-sql,C#,Sql Server,Linq,Linq To Sql,我正在使用LINQ将数据插入数据库。问题是执行代码后,数据没有添加到表中 以下是我的工作: 执行代码→ 转到服务器资源管理器中的“数据连接”→ 刷新表格 但表中没有显示任何行 下面是我的代码。任何帮助都将不胜感激。谢谢 private static LinqToSqlDataContext dbContext; static Tables() //constructor { string connectionString = ConfigurationM
private static LinqToSqlDataContext dbContext;
static Tables() //constructor
{
string connectionString = ConfigurationManager.ConnectionStrings["MusicPlayerDBConnectionString"].ConnectionString;
dbContext = new LinqToSqlDataContext(connectionString);
}
public static void AddTrack(Track track) // Track is custom data structure
{
Track_Table trackTable = CreateTrack(track);
dbContext.Track_Tables.InsertOnSubmit(trackTable);
dbContext.SubmitChanges();
}
private static Track_Table CreateTrack(Track track)
{
Track_Table trackTable = new Track_Table
{
Track_Id = track.Id,
Title = track.Title,
Album_Id = null,
Artist = track.Artist,
Duration = track.Duration,
Path = track.Path,
Image_Path = track.imagePath
};
return trackTable;
}
改变
然后
dbContext.SaveChanges();
如果你有这门课:
public class Track
{
public int Id {get; set;}
public int Number {get; set;}
public string Title{get; set;}
// etc
}
那么您的DbContext应该如下所示:
public class MusicDbContext : DbContext // inherit from Entity Framework
{
public DbSet<Track> Tracks{get;set;} // This maps to the database
}
重要提示
不要为DbContext类创建静态变量。实体框架在它自己的内部静态对象中保持缓存,如果您试图将DbContext作为静态对象持久化,那么在几次更新之后就会发生奇怪的事情。总是新的背景。第一次连接后速度非常快,代码更清晰。此表是否有
主键
?是。曲目Id为PK。保存时是否出现异常?你确定你正在查看用于代码的同一个数据库吗?嗯。上下文不包含add方法。。。表不包含Add的定义。虽然我100%同意不将其保持为静态,但是什么让您认为这是EFInsertOnSubmit
是System.Data.Linq.Table
类的一种方法,它使这个Linq2SQL成为一个SQL。(编辑:)然后还有LinqToSqlDataContext,它也是一个提示:我现在看到了:)今天早上我的咖啡里有脏东西!
public class MusicDbContext : DbContext // inherit from Entity Framework
{
public DbSet<Track> Tracks{get;set;} // This maps to the database
}
...
var myContext = new MusicDbContext();
myContext.Tracks.Add(theNewTrack);
myContext.SaveChanges();
...