C# 如何获取插入的ID';s
在C# 如何获取插入的ID';s,c#,linq-to-entities,C#,Linq To Entities,在DB中添加新行后,我正在尝试获取所有ID 我尝试了这个,但给了我一个异常->返回0作为Id foreach (var s in ss) { Table t1 = new Table(); ... ... _entities.Table.Add(t1); Ids.Add(ID); // <--- trying to get Ids here. } _entities.SaveChanges(); foreach(ss中的变量s) { 表t1
DB
中添加新行后,我正在尝试获取所有ID
我尝试了这个,但给了我一个异常->返回0作为Id
foreach (var s in ss)
{
Table t1 = new Table();
...
...
_entities.Table.Add(t1);
Ids.Add(ID); // <--- trying to get Ids here.
}
_entities.SaveChanges();
foreach(ss中的变量s)
{
表t1=新表();
...
...
_实体。表。添加(t1);
ID.Add(ID);//通常,您的实体将有一个ID属性,在调用SaveChanges()
后会更新该属性。因此,您可以执行以下操作:
List<int> Ids = new List<int>();
foreach (var s in ss)
{
Table t1 = new Table();
...
_entities.Table.Add(t1);
_entities.SaveChanges();
Ids.Add(t1.ID);
}
List id=new List();
foreach(ss中的var s)
{
表t1=新表();
...
_实体。表。添加(t1);
_entities.SaveChanges();
ID.Add(t1.ID);
}
或者这个:
List<Table> insertedTables = new List<Table>();
foreach (var s in ss)
{
Table t1 = new Table();
...
_entities.Table.Add(t1);
insertedTables.Add(t1);
}
_entities.SaveChanges();
List<int> Ids = insertedTables.Select(t => t.ID).ToList();
List insertedTables=new List();
foreach(ss中的var s)
{
表t1=新表();
...
_实体。表。添加(t1);
insertedTables.Add(t1);
}
_entities.SaveChanges();
List ID=insertedTables.Select(t=>t.ID.ToList();
通常,您的实体将有一个ID属性,在调用SaveChanges()
后会更新该属性。因此,您可以执行以下操作:
List<int> Ids = new List<int>();
foreach (var s in ss)
{
Table t1 = new Table();
...
_entities.Table.Add(t1);
_entities.SaveChanges();
Ids.Add(t1.ID);
}
List id=new List();
foreach(ss中的var s)
{
表t1=新表();
...
_实体。表。添加(t1);
_entities.SaveChanges();
ID.Add(t1.ID);
}
或者这个:
List<Table> insertedTables = new List<Table>();
foreach (var s in ss)
{
Table t1 = new Table();
...
_entities.Table.Add(t1);
insertedTables.Add(t1);
}
_entities.SaveChanges();
List<int> Ids = insertedTables.Select(t => t.ID).ToList();
List insertedTables=new List();
foreach(ss中的var s)
{
表t1=新表();
...
_实体。表。添加(t1);
insertedTables.Add(t1);
}
_entities.SaveChanges();
List ID=insertedTables.Select(t=>t.ID.ToList();
通常,您的实体将有一个ID属性,在调用SaveChanges()
后会更新该属性。因此,您可以执行以下操作:
List<int> Ids = new List<int>();
foreach (var s in ss)
{
Table t1 = new Table();
...
_entities.Table.Add(t1);
_entities.SaveChanges();
Ids.Add(t1.ID);
}
List id=new List();
foreach(ss中的var s)
{
表t1=新表();
...
_实体。表。添加(t1);
_entities.SaveChanges();
ID.Add(t1.ID);
}
或者这个:
List<Table> insertedTables = new List<Table>();
foreach (var s in ss)
{
Table t1 = new Table();
...
_entities.Table.Add(t1);
insertedTables.Add(t1);
}
_entities.SaveChanges();
List<int> Ids = insertedTables.Select(t => t.ID).ToList();
List insertedTables=new List();
foreach(ss中的var s)
{
表t1=新表();
...
_实体。表。添加(t1);
insertedTables.Add(t1);
}
_entities.SaveChanges();
List ID=insertedTables.Select(t=>t.ID.ToList();
通常,您的实体将有一个ID属性,在调用SaveChanges()
后会更新该属性。因此,您可以执行以下操作:
List<int> Ids = new List<int>();
foreach (var s in ss)
{
Table t1 = new Table();
...
_entities.Table.Add(t1);
_entities.SaveChanges();
Ids.Add(t1.ID);
}
List id=new List();
foreach(ss中的var s)
{
表t1=新表();
...
_实体。表。添加(t1);
_entities.SaveChanges();
ID.Add(t1.ID);
}
或者这个:
List<Table> insertedTables = new List<Table>();
foreach (var s in ss)
{
Table t1 = new Table();
...
_entities.Table.Add(t1);
insertedTables.Add(t1);
}
_entities.SaveChanges();
List<int> Ids = insertedTables.Select(t => t.ID).ToList();
List insertedTables=new List();
foreach(ss中的var s)
{
表t1=新表();
...
_实体。表。添加(t1);
insertedTables.Add(t1);
}
_entities.SaveChanges();
List ID=insertedTables.Select(t=>t.ID.ToList();
一旦插入并保存,您的实体对象将有其Id。我想这就是您的要求。一旦插入并保存,您的实体对象将有其Id。我想这就是您的要求。一旦插入并保存,您的实体对象将有其Id。我想这就是您的要求。一旦插入并保存,您的实体对象将有其Idcts将有它们的Id。我想这就是你要问的。谢谢你的快速回复。我尝试了第一个,但它给了我一个异常{“由于会话中有其他线程运行,因此不允许新事务。”}
@Lakhae在这种情况下,您可能需要进行其他调整,但在没有看到完整上下文的情况下,很难说。第二个对您有效吗?它没有按照我的预期工作。我正在尝试插入所有新行Ids
。但是您的代码也会返回所有现有行Ids
。@Lakhae它不应该有效。如果您创建一个新的当您在foreach
循环中插入新行时,请列出并仅添加到列表中,然后列表。选择(t=>t.ID)
将仅返回插入的行。可能是由于变量名引起的混淆。请参阅我的更新答案以获得澄清。感谢您的快速回复。我尝试了第一个,但它给了我一个异常{“由于会话中正在运行其他线程,因此不允许新事务。”}
@Lakhae在这种情况下,您可能需要进行其他调整,但在没有看到完整上下文的情况下,很难说。第二个对您有效吗?它没有按照我的预期工作。我正在尝试插入所有新行Ids
。但是您的代码也会返回所有现有行Ids
。@Lakhae它不应该有效。如果您创建一个新的当您在foreach
循环中插入新行时,请列出并仅添加到列表中,然后列表。选择(t=>t.ID)
将仅返回插入的行。可能是由于变量名引起的混淆。请参阅我的更新答案以获得澄清。感谢您的快速回复。我尝试了第一个,但它给我一个异常{”不允许新事务,因为会话中正在运行其他线程。“}
@Lakhae在这种情况下,您可能需要进行其他调整,但在没有看到完整上下文的情况下,很难说。第二个对您有效吗?它没有按照我的预期工作。我正在尝试插入所有新行Ids
。但是您的代码也会返回所有现有行Ids
。@Lakhae它不应该有效。如果您创建一个新的当您在foreach
循环中插入新行时,请列出并仅添加到列表中,然后列表。选择(t=>t.ID)
将仅返回插入的行。可能是由于变量名引起的混淆。请参阅我的更新答案以获得澄清。感谢您的快速回复。我尝试了第一个,但它给我一个异常{”不允许新事务,因为会话中正在运行其他线程。“}
@Lakhae在这种情况下,您可能需要进行其他调整,但在没有看到完整上下文的情况下,很难说。第二个对您有效吗?它没有按照我的预期工作。我正在尝试插入所有新行Ids
。但是您的代码也会返回所有现有行Ids
。@Lakhae它不应该有效。如果您创建一个新的仅当您在foreach
循环中插入新行,然后