cos*_*sta 2 f# c#-to-f# entity-framework-6
我在C#中有以下代码:
public async Task<List<Table>> GetRows()
{
return await db.Table.ToListAsync();
}
Run Code Online (Sandbox Code Playgroud)
其中db是EF 6 DbContext。
假设我访问相同的DbContext,如何在F#中编写等效内容?
我想出了这段代码,但我陷入了困境:
let getRows = async {
let q = query {
from r in db.Table
select r
}
q |> Seq.map(fun row -> ...) // <-- Here I might want to do some custom function
}
Run Code Online (Sandbox Code Playgroud)
谢谢
.ToListAsync()在F#中使用没有问题。我认为您的困惑是使C#await与F#完美配合async。
在这种情况下,您应该使用Async.AwaitTask
以下代码
async {
let! q = db.Table.ToListAsync() |> Async.AwaitTask //here you have a C# list
}
Run Code Online (Sandbox Code Playgroud)