我是F#的新手并且无法翻译某些C#代码。 我有一个类似的类:
type car () =
member val Model = "" with get,set
member val Year = "" with get,set
我有这个查询表达式从数据库中提取汽车数据:
query{
for row in db do
select // <-- what is the correct syntax to create a sequence of new car
// classes here
}
答案 0 :(得分:2)
如果你不翻译1:1或至少如果你添加一个构造函数,那就容易多了。
例如,使用主构造函数,这应该有效:
type Car (model, year) =
member __.Model with get() = model
member __.Year with get() = year
query {
for row in db do
select (Car (row.Model, row.Year))
}
现在当然我不知道db
中的行是怎么样的,这会给你不可变的数据 - 但是对于我看来它应该没问题
我刚刚意识到这可能是一个问题(就像在C#中一样)因为ctor可能无法翻译成SQL语句 - 你仍然可以尝试,但我猜你真的需要做
query {
for row in db do
select
} |> Seq.map (fun row -> Car (row.Model, row.Year))
相反(抱歉 - 现在不能真正尝试)