小编Wei*_* Ma的帖子

循环遍历F#记录,如Javascript对象

在javascript中,我可以使用简单的for循环访问对象的每个属性,如下所示

var myObj = {x:1, y:2};
var i, sum=0;
for(i in myObj) sum = sum + myObj[i];
Run Code Online (Sandbox Code Playgroud)

我想知道我是否可以用F#做类似的事情.

type MyObj = {x:int; y:int}
let myObj = {x=1; y=2}
let allValues:seq<int> = allPropertyValuesIn myObj //How do I implement allPropertyValuesIn 
let sum = allValues |> Seq.fold (+) 0
Run Code Online (Sandbox Code Playgroud)

谢谢您的意见

编辑以澄清我为什么要做这样的事情
我正在研究XML文件生成器.输入是从数据库读取的行,xsd是预定义的.

假设我需要生成"产品"元素,并且根据业务规则,产品下可能有200个子元素,有些是必需的,有些是可选的.根据这个优秀博客的建议,我有第一个(非常粗略)的产品记录设计:

1.    type Product{ Price:Money; Name:Name; FactoryLocation:Address option ... }
2.    let product = {Price = Money(1.5); Name = Name ("Joe Tooth Paste"); ... }
3.    let child1 = …
Run Code Online (Sandbox Code Playgroud)

f#

5
推荐指数
1
解决办法
1409
查看次数

Playframework 2.0在视图模板中定义功能

我正在使用PlayFramework 2.0开发一个项目.在阅读了一些scala之后,我想在View模板中嵌入一些动态代码.所以,我做了以下事情:

@{
    def getMystring(sequence:Int) = {
        if(patternForm != null && 
            patternForm.get().windowTreatments != null &&
            patternForm.get().windowTreatments.size() >= sequence + 1)
            sequence+""
        else 
            "" 
    }
}

<input type = "text" value = @getMystring(1)></input>
...
Run Code Online (Sandbox Code Playgroud)

我很确定它会起作用,但我得到了一个"未找到:值getMyString错误发生".我做了明显错误的事吗?

scala playframework playframework-2.0

4
推荐指数
1
解决办法
4409
查看次数

Playframework:"游戏开始"的奇怪行为 - 缓存问题?

我目前正在使用播放框架2开发一个Web应用程序.我在/ public目录下创建了一个文件夹"files".当我使用"play run"启动服务器时,可以访问该目录下的所有资源.

部署到服务器后.我通过运行"play start"启动服务器,发现"files"下的资源不再存在.

我想知道"play start"和"play run"之间不一致的原因是什么

更新:经过几次试验.我发现这是新上传的资源无法显示.方案如下:

1. play start --> server starts.
2. use application to upload a few images to the server.
3. try to display the uploaded image --> nothing is shown. browser shows the resource is not accessible.
4. kill the server process with task manager.
5. rm RUNNING_PID
6. run play start again 
7. Try to display the uploaded image --> now the images are showing.
Run Code Online (Sandbox Code Playgroud)

因此,看起来像"播放开始"的"热更新"问题我是否可以做任何配置让服务器接受更改?谢谢.

playframework playframework-2.0

3
推荐指数
1
解决办法
748
查看次数

如何在 PHPDoc 中指示“包含特征”的参数

最近,我在使用 PhpStorm 实现 PHP 应用程序时遇到了一个有趣的情况。下面的代码片段说明了这个问题。

    interface I{
        function foo();
    }

    trait T{
        /**
         * @return string
         */
        public function getTraitMsg()
        {
            return "I am a trait";
        }
    }

    class A implements I{
        use T;
        function foo(){}
    }

    class C implements I{
        use T;
        function foo(){}
    }

    class B {
        /**
         * @param I $input <===Is there anyway to specify that $input use T? 
         */
        public function doSomethingCool($input){ //An instance of "A" or "C"
           $msg = $input -> getTraitMsg();  //Phpstorm freaks …
Run Code Online (Sandbox Code Playgroud)

php phpdoc phpstorm

3
推荐指数
1
解决办法
6727
查看次数

Postgresql加入限制

我正在创建SQL查询,涉及多个具有1到N关系的表以支持分页.

为了得到前10位父母,我试着去做

SELECT * from parent p
LEFT JOIN child c
ON c.parent_id = p.id
LIMIT 10
Run Code Online (Sandbox Code Playgroud)

如果任何父级有多个子级,则此方法无效

我能做的一个选择是

__CODE__

这非常笨拙.我想做的是

SELECT * from parent LIMIT 10 into temp_p;
SELECT * from temp_p p
LEFT JOIN child c
ON c.parent_id = p.id
Run Code Online (Sandbox Code Playgroud)

但当然语法错了.我想知道Postgresql是否有某种方式来支持我想做的事情.

postgresql

3
推荐指数
1
解决办法
3308
查看次数

Dynamics CRM 2011无法将插件注册到磁盘

我正在尝试将插件添加到CRM2011服务器.按照带有sdk的Plug-in Sample的步骤,一切都按预期工作.但是,当我尝试将插件注册到磁盘(默认为数据库)时,我得到了

Unhandled Exception: System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]: Unable to load plug-in assembly.
Run Code Online (Sandbox Code Playgroud)

似乎服务器找不到microsoft.xrm.sdk文件.但是为什么在发布到数据库时相同的设置工作正常?

我已经为文件夹C:\ program files\MicrosoftDynamics CRM\Server\bin添加了"写入"权限给用户"网络服务"但是得到了相同的错误消息.

服务器操作系统是Windows 2008 R2在vmware播放器虚拟机中运行.

crm dynamics-crm-2011

2
推荐指数
1
解决办法
4605
查看次数

查找使用链接服务器的所有视图

我正在更新链接服务器的URL.在进行更改之前,我想知道所有引用此链接服务器的视图.是否有任何编程方式(TSQL)来执行此任务?

谢谢你的帮助.

我使用的是SQL Server 2005,2008和2012.引用链接服务器的数据库服务器主要是SQL Server 2005

t-sql sql-server

2
推荐指数
1
解决办法
2545
查看次数

TypeScript中的循环

我正在尝试将我的一个CoffeeScript库转换为TypeScript.到目前为止,经验还可以,除非我找不到相应的

locations = (new Location p.lat, p.lng for p in points)  
Run Code Online (Sandbox Code Playgroud)

我是否必须for(i = 0; i < len; i++)为TypeScript 编写旧时尚的循环?

typescript

2
推荐指数
1
解决办法
2070
查看次数

在postgresql中查询事务日志

我想知道是否可以使用标准查询选择查询事务.

例如:

SELECT * FROM information_schema.transaction_logs 
WHERE table_name = 'product' AND time_stamp > '2016-01-01';
Run Code Online (Sandbox Code Playgroud)

结果会是这样的

===> table_name | operation | old_val_json   | new_val_json...
      product   |    update | {....desc:...} | {...desc...}| 
Run Code Online (Sandbox Code Playgroud)

查询不起作用,因为没有像transaction_logs这样的表,但是存在类似的东西吗?

postgresql

2
推荐指数
1
解决办法
6105
查看次数

F#事务管理

我一直在考虑在F#中实施电子支付系统.一个关键要求是事务管理.

我使用了TransactionScope和Dapper,效果很好.我可以使用Tranq来管理数据库事务,但是想使用像TransactionScope这样的东西来管理在线操作.

相对较新的F#,我不知道是否有相当于的东西

using (var trans = new TransactionScope())
{
    ...//operations
    trans.Complete();
}
Run Code Online (Sandbox Code Playgroud)

如果从C#到F#方法的线到线转换是错误的,那么是否还有管理交易的"功能方式"?

f# c#-to-f#

1
推荐指数
1
解决办法
454
查看次数