2010-08-17 37 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