Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq to sql LINQ到SQL-插入新记录_Linq To Sql - Fatal编程技术网

Linq to sql LINQ到SQL-插入新记录

Linq to sql LINQ到SQL-插入新记录,linq-to-sql,Linq To Sql,我有一个带有自动递增ID字段的数据库表。此表通过实体数据模型由代码公开。我正试图给这个表写一条新记录。我有一个方法需要负责创建这些记录。此方法接受记录的属性值。它需要创建一条记录,并在另一个表中写入一条引用记录。目前,以下是我正在尝试的 public int CreateRecord(string name, string description, List<int> ids) { using (DatabaseContext database = new DatabaseCon

我有一个带有自动递增ID字段的数据库表。此表通过实体数据模型由代码公开。我正试图给这个表写一条新记录。我有一个方法需要负责创建这些记录。此方法接受记录的属性值。它需要创建一条记录,并在另一个表中写入一条引用记录。目前,以下是我正在尝试的

public int CreateRecord(string name, string description, List<int> ids)
{
  using (DatabaseContext database = new DatabaseContext())
  {
    Record record = new Record();
    record.Name = name;
    record.Description = description;

    database.Records.InsertOnSubmit(record);
    database.SubmitChanges();

    List<RecordTrack> tracks = new List<RecordTrack>();
    foreach (int id in ids)
    {
      RecordTrack track = new RecordTrack();
      track.RecordID = record.ID;
      track.ID = id;
      tracks.Add(track);
    } 
    database.Tracks.InsertAllOnSubmit(tracks);
    database.SubmitChanges();
  }
}
public int CreateRecord(字符串名称、字符串描述、列表ID)
{
使用(DatabaseContext database=newdatabasecontext())
{
记录=新记录();
record.Name=Name;
记录。描述=描述;
数据库.Records.InsertOnSubmit(记录);
database.SubmitChanges();
列表轨道=新列表();
foreach(id中的int-id)
{
RecordTrack track=新的RecordTrack();
track.RecordID=record.ID;
track.ID=ID;
tracks.Add(track);
} 
数据库.Tracks.InsertAllOnSubmit(Tracks);
database.SubmitChanges();
}
}
我似乎无法用这种方式保存记录。当我通过一个我想插入的记录时,我能够做到这一点。但是由于其他因素,我需要一种方法来完全从头开始创建记录。我做错了什么


谢谢大家!

在数据库上下文中应该有一个
AddToRecord()
函数。使用该函数添加
record
变量,然后从数据库上下文调用
SaveChanges()

L2S的流利程度不如我(因此是一条注释,而不是答案),但插入后不需要从Db上下文中检索记录吗?你的引用还没有更新它的ID,不是吗?你的跟踪表也是自动递增的吗?在这种情况下,你不能像这里那样设置ID,我没有AddToRecord函数。这是与我未引用的命名空间关联的扩展方法吗?我在谷歌上搜索了它,没有看到任何地方提到它。它应该是一个由你的上下文自动生成的函数。我想,由于您使用的是
提交更改
而不是
保存更改
,因此您使用的是我不熟悉的东西;然后是db.SaveChanges();我也找不到方法!怎么办?