将随机Guid列添加到Linq to Entities查询以获取随机记录

时间:2009-06-03 15:54:29

标签: linq entity-framework linq-to-entities lambda

我发现了一些关于使用RandomView视图和GetNewID函数来撤回随机记录的文章,但他们正在使用Linq to SQL的这个方法,它允许使用函数和存储过程而没有返回值或标量回报价值。据我所知,存储过程必须作为我生成的模型中的一个Entity Framework对象返回。我已经能够将其作为一个对象,但不返回标量或没有返回集。

我想要做的只是在我的Linq查询中添加一个包含新生成的Guid的列,这样我就可以通过新的Guid订购并随机获取特定数量的记录。任何人都可以帮助某种lambda表达式或连接,这将使我能够做到这一点?看起来它应该是EF内置的东西,但我知道我们在EF v1上。

(请在VB.net中提供代码)

2 个答案:

答案 0 :(得分:3)

在Linq查询的Select子句中,您应该能够插入如下所示的GUID:

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

答案 1 :(得分:2)

嗯,我的VB有点生疏,但我认为这会有用......

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