我正在开发一个演示,以展示在F#库中使用SqlClient类型提供程序的简单性,并从C#中使用它。我认为这可能是将事物引入项目的一种方式。由于许多使用C#的人想要使用接口等,我想向他们展示可以将所有东西组合在一起,但我没有得到预期的结果。我有以下F#代码,在F#中按预期工作:
module Orders =
[<Literal>]
let connStr = """XXXXXXXXXXXX"""
type OrdersPerEmployee = SqlCommandProvider<"OrdersPerEmployee.sql", connStr>
open Orders
type IOrdersRepo =
abstract member getOrdersPerEmployee : int -> OrdersPerEmployee.Record seq
type OrdersRepo() =
interface IOrdersRepo with
member this.getOrdersPerEmployee(employeeId) =
let query = new OrdersPerEmployee()
query.Execute(employeeId)
然而当我尝试从我的C#应用程序中使用它时,我并没有得到getOrdersPerEmployee
返回记录的可枚举对象,相反它返回了一个对象的可枚举序列:
IOrdersRepo repo = new OrdersRepo();
var data = repo.getOrdersPerEmployee(4).ToList();
data.ForEach(y => Console.WriteLine(y));
Console.ReadLine();
在上面的代码中,我期望在lambda表达式中对
y
进行智能提示,但是没有出现。有什么想法吗?