I'm trying to use F# to construct a query against a database, but I can't get even the simplest of queries to compile.
I can construct a C# query like this:
from c in Categories
select c
Everything works fine. However, when I try to do what should be the same thing in F#:
query { for c in Categories do
select c }
I get the following error:
Invalid use of a type name and/or object constructor. If necessary use 'new' and apply the constructor to its arguments, e.g. '
new Type(args)
'. The required signature is:Categories() : unit
.
LINQPad comes bundled with a number of samples, but none of the F# samples actually show how to use it to query against a database. I've looked around the internet, also, but I can't find any examples using F# to query a database in LINQPad. What am I missing here?
As you see in the diagram (above), begin the capital letter F on the top line, creating the top line of the F. From the center of the top of the F, bring your stroke down to the bottom line, making a small tail off the left side. After, cross the f in the center with a single line.
Out of curiosity I decided to try and get something working with F# in LinqPad. I was able to get it working by selecting "F# Program" instead of F# expression. I'm sure it's possible using just an expression, but I am 100% unfamiliar with F# so I just did enough to get a working example. Selecting this option gave me a single line of:
let dc = new TypedDataContext()
From there, I followed this example page to get this query working/executing:
let dc = new TypedDataContext()
let query1 = query { for c in dc.MyTable do
select c }
query1
|> Seq.iter (fun x -> printfn "SomeField: %s" x.SomeField)
You just need to add "this." in front of the mapped table if you want to run it as a F# Expression in LINQPad.
query { for c in this.Categories do
select c }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With