Rob*_*sen 13 c# sql-server f# sqlclr
我需要在Sql中运行.Net代码,我试图在F#和C#之间做出决定.我现在在F#中做的代码越来越多,所以如果它不是太不切实际,我希望它是F#.
是否有可能强制VS2010将我的F#程序集(及其引用)部署到Sql Server,这与C#项目的做法相同?
你会建议/不建议在Sql中运行F#吗?为什么?
编辑: 我同意语言更好,这不是问题.我主要想知道是否有人在SqlClr中使用F#的经验,特别是如果工具可以提供简单的开发工作流程,即在VS2010中部署.
编辑2:
我正在尝试这个,手动注册是非常痛苦的.此外,CREATE ASSEMBLY你必须注册每个函数,sp,聚合等.你还必须先按正确的顺序删除它们,如果它们存在,以免你得到一个DROP ASSEMBLY failed because 'Nibbler' is referenced by object 'Hello'.
然后,我有了使用C#项目作为前端的想法,让这个项目引用一个F#项目,只是为了让所有这些部署自动处理.事实证明,您只能引用其他C#/ VB Sql Clr项目或已在Sql中引用的程序集.这仍然可以简化部署,因为所有功能的创建/删除等都将自动处理.然后,为了从测试部署到生产,我只会从我的测试环境中注册的所有内容生成脚本.
PS.我还尝试摆弄.fsproj文件,与C#Clr项目的.csproj进行区分,以使部署无济于事.
我建议在F#中编写你的CLR UDF /程序的原因与我建议用F#编写几乎任何东西的原因相同(参见SO上的大量F#和C#问题).我想不出一个理由,更喜欢C#的东西.我没有尝试使用VS将程序集部署到SQL Server,但是CREATE ASSEMBLY工作正常...并且无论编程语言如何都一样.