评估F#3使用它类型提供程序功能替代编写T/SQL或存储过程.
let summary =
query { for dsm in db.DistributorSalesMaster do
join c in db.CustomerMain on
( dsm.CustomerId = c.CustomerId)
join cal in db.Calendar on
( dsm.InvoiceDate =? cal.TheDate)
join dsd in db.DistributorSalesDetail on
( dsm.SalesId = dsd.SalesId)
where (dsm.InvoiceDate >= Convert.ToDateTime("2010-12-01")
&& dsm.InvoiceDate <= Convert.ToDateTime("2011-11-30")
&& c.MainDistributorId=1s
&& c.DistributorId=1s
&& c.CustomerId = 159M
&& cal.APYear?=2011
)
groupValBy dsd.InvoiceQuantity ca.APYear into g
select (g.Key,g.Count())}
Run Code Online (Sandbox Code Playgroud)
它的工作方式与预期相同.数据库上下文日志确认为:
SELECT COUNT(*) AS [Item2], [t2].[APYear] AS [Item1]
FROM [dbo].[DistributorSalesMaster] AS [t0]
INNER JOIN [dbo].[CustomerMain] AS …Run Code Online (Sandbox Code Playgroud) 示例是使用 useState 来保持点击计数器的简单功能组件。
单步执行 Stepper MUI 组件,我想创建具有不同初始化值的 Example 组件的实例,例如在步骤 0,初始化值 100,在步骤 1,初始化值 111,在步骤 2,初始化值 112。
在逐步执行每个步骤时,尽管传递了不同的初始值,但示例功能组件仅将状态保持为第一个初始值,即 100。
文件是 /Components/Navigation/Stepper01a.js,StepContent 中引用的示例组件,而 HorizontalLinearStepper 组件中引用了该组件。整体代码是来自 Material UI Stepper 组件的示例。我只是试图测试它以在每个步骤创建具有不同初始值的其他功能组件的不同实例(在这种情况下为示例)。
示例组件:
function Example({ init }) {
// Declare a new state variable, which we'll call "count"
const [count, setCount] = React.useState(init)
return (
<div>
<p>init {init} </p>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>Click me</button>
</div>
)
}
Run Code Online (Sandbox Code Playgroud)
步骤内容组件:
function StepContent({ step }) {
console.log("step", step)
switch (step) {
case 0: …Run Code Online (Sandbox Code Playgroud) 在以下代码中:
#r "System.Data.dll"
#r "FSharp.Data.TypeProviders.dll"
#r "System.Data.Linq.dll"
open System
open System.Data
open System.Data.Linq
open Microsoft.FSharp.Data.TypeProviders
open Microsoft.FSharp.Linq
open System.Windows.Forms
type dbSchema = SqlDataConnection<"...">
let grid<'T> (x:seq<'T>) =...
let query1 =
query {
for row in db.Status do
//select row
select (row.StatusID, row.Name)
}
query1 |> Seq.toArray |> grid
Run Code Online (Sandbox Code Playgroud)

有哪些更好的方法可以将列更改为有意义的标题(例如,数据源中的实际列),而不仅仅是(Item1 Item2 ...).
注意:有关网格功能,请参阅 Tomas Petricek的回复.
问候,知识产权