2010-08-17 32 views

回答

4

加载的集合不知道有关存储的任何内容(它处理自动增量值)。如果您想知道已加载集合中的最高ID,则可以使用聚合LINQ查询并选择最大ID。

或者您可以使用Linq-To-Sql来运行存储过程并检索SCOPE_IDENTITY。

1

您试过BLToolkit。它支持LINQ,以及那些在LINQ2SQL缺席许多其他有用的操作:即DML具有人情味:)

关于你的问题:BLToolkit包含InsertWithIdentity方法

var value = db.Employee.InsertWithIdentity(() => new Northwind.Employee 
{ 
    FirstName = "John", 
    LastName = "Shepard", 
    Title  = "Spectre", 
    HireDate = Sql.CurrentTimestamp 
}); 

var value = 
    db 
    .Into(db.Employee) 
     .Value(e => e.FirstName, "John") 
     .Value(e => e.LastName, "Shepard") 
     .Value(e => e.Title, () => "Spectre") 
     .Value(e => e.HireDate, () => Sql.CurrentTimestamp) 
    .InsertWithIdentity(); 
2

您可以随时从Linq执行T-SQL代码片段以获取值:

SELECT 
    name, 
    OBJECT_NAME(OBJECT_ID) 'Table name', 
    ISNULL(last_value, -1) 'Last Value' 
FROM 
    sys.identity_columns 

然后从该输出中获取必要的值。

-2

你好男人我有一个解决方案linq白色vb.net!

 Dim Reg as new Consult 
     Reg.Nombre = TxName.Text 
     Reg.Edad = TxYears.Text 
     Reg.Pulso = TxPulse.Text 
     Reg.Tension = TxTens.Text 
     Reg.Peso = TxKg.Text 
     Db.Consulta.InsertOnSubmit(Reg) 
     Db.SubmitChanges() 
     MsgBox("You have created a New Consult #" & Reg.ConsultaId) 

     DialogResult = Windows.Forms.DialogResult.OK 
     Me.Close() 

这工作对我来说!

+0

我应该指出,一些女士也使用这个网站。 – 2014-05-10 16:50:42