2009-06-03 46 views
2

我發現了一些關於使用RandomView視圖和GetNewID函數來撤回隨機記錄的文章,但他們使用Linq to SQL這種方法允許函數和存儲過程在沒有返回值或標量返回值的情況下使用。據我所知,Stored Proc必須作爲我生成的模型中的一個實體框架對象返回。我已經能夠將它作爲一個對象來工作,但不能返回標量或不返回集合。將一個隨機Guid列添加到Linq to Entities查詢以獲取隨機記錄

我想要做的只是添加一列到我的Linq查詢中,該查詢包含一個新生成的Guid,這樣我就可以通過新的Guids命令並隨機獲取特定數量的記錄。任何人都可以幫助某種lambda表達式或加入,這將使我能夠做到這一點?看起來它應該是EF內置的東西,但我知道我們在EF v1上。

(在VB.net請提供代碼)

+0

請記住,guids是不是隨機的 - 他們是獨一無二的。你不應該依賴它們來提供任意的隨機性。 – Enigmativity 2016-06-15 01:54:18

回答

2

嗯,我的VB是小生鏽,但我認爲這將工作...

Dim result = 
    From myRecord in myTable _ 
    Select field1, _ 
      field2, _ 
      guidField = System.Guid.NewGuid() 
3

在你的Linq查詢的SELECT子句中,你應該能夠插入一個GUID是這樣的:

var result = from myRecord in myTable 
    select new { 
     field1 = myRecord.field1, 
     field2 = myRecord.field2, 
     guidField = Guid.NewGuid() 
    }; 
+0

謝謝,羅伯特。我將如何在VB.net中做到這一點? – 2009-06-03 16:30:57

+0

`新的Guid()`將總是返回`00000000-0000-0000-0000-000000000000`。你需要使用`Guid.NewGuid()`來代替。 – 2010-11-07 22:55:53