LISP和C#在函数式编程方面有哪些主要区别?具体而言,如果LISP程序员转而使用C#,他们最有可能错过的功能是什么?
当某些列按结果排序时,如何在PostgreSQL中获取行号?
例如
SELECT 30+row_number() AS position, *
FROM users
ORDER BY salary DESC
LIMIT 30
OFFSET 30
Run Code Online (Sandbox Code Playgroud)
我认为查询将返回如下列表:
position | name | salary
31 | Joy | 4500
32 | Katie| 4000
33 | Frank| 3500
Run Code Online (Sandbox Code Playgroud)
实际上我必须将该ORDER
子句复制到查询中才能使其正常运行:
SELECT 30+row_number(ORDER BY salary DESC) AS position, *
FROM users
ORDER BY salary DESC
LIMIT 30
OFFSET 30
Run Code Online (Sandbox Code Playgroud)
有没有其他方法如何返回有序和编号的结果,而无需复制代码?
我知道这可以通过在应用程序本身中增加一些变量来解决,但我想在数据库层执行此操作并返回已编号的应用程序结果...
我通过以下方式设置了GridView:
List<T>
代码隐藏(我使用自己的自定义BOL)SortExpression
s都设置正确)但是,我收到以下错误消息:
GridView的'myGridView'触发了事件排序,但没有处理.
让我List<T>
允许排序的最佳方法是什么?
我怀疑它将与为OnSorting
属性指定一个函数有关,即:
OnSorting = "MySortingMethod"
Run Code Online (Sandbox Code Playgroud) 使用Java,我想采用以下格式的文档:
<tag1>
<tag2>
<![CDATA[ Some data ]]>
</tag2>
</tag1>
Run Code Online (Sandbox Code Playgroud)
并将其转换为:
<tag1><tag2><![CDATA[ Some data ]]></tag2></tag1>
Run Code Online (Sandbox Code Playgroud)
我试过以下内容,但它并没有给我我期待的结果:
DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance();
dbfac.setIgnoringElementContentWhitespace(true);
DocumentBuilder docBuilder = dbfac.newDocumentBuilder();
Document doc = docBuilder.parse(new FileInputStream("/tmp/test.xml"));
Writer out = new StringWriter();
Transformer tf = TransformerFactory.newInstance().newTransformer();
tf.setOutputProperty(OutputKeys.INDENT, "no");
tf.transform(new DOMSource(doc), new StreamResult(out));
System.out.println(out.toString());
Run Code Online (Sandbox Code Playgroud) 我正在使用PetaPoco Micro-ORM和C#4.0.
下面的代码从数据库中检索一行:
var result = db.SingleOrDefault<TdUsers>(getUserQuery);
Run Code Online (Sandbox Code Playgroud)
我想检查结果是否包含任何行,以及是否为null.做这个的最好方式是什么?
我正在使用类型表达式:
type dbSchema = SqlDataConnection<ConnectionStringName="X1", ConfigFile="App.config">
Run Code Online (Sandbox Code Playgroud)
这在编译时非常有效(我可以完全访问所有数据库类型),但它在运行时失败.我认为这是因为在控制台应用程序的bin
目录中生成的配置文件被命名为其他内容,例如MyAppName.exe.config
,因此App.config
找不到该文件.
当然,对于使用的ASP.NET MVC类型的应用程序,web.config
没有问题,因为编译和运行时配置文件名是相同的.
幸运的是,App.config
在bin
目录中放置副本确实可以解决问题,但这是我们应该做的吗?有什么想法吗?
我正在寻找有关如何在模块化非单片应用程序设计中使用ORM(在本例中为EF5)的建议,其中包含Core部分和第三方模块,其中Core没有直接引用第三方模块和模块仅引用Core/Common表和类.
为了论证,一个足够接近的类比将是DNN.
CodeFirst:
使用CodeFirst,我使用的方法是通过反射构建Db的模型:在Core的DbContext的DbInitialation阶段,我使用Reflection来查找任何用IDbInitializer(自定义)修饰的dll(例如Core或各种模块)中的任何类包含Execute()方法的契约,只定义dll的结构.每个dll都向DbModel添加了它自己知道的内容.任何后续的Seeding也在同一个wa中处理(搜索特定的IDbSeeder合同并执行它).
亲:*这种方法现在有效.*可以在所有存储库中使用相同的核心DbContext,只要每个存储库使用dbContext.GetSet(),而不是期望它是dbContext的属性.没什么大不了的.缺点:*它仅在启动时有效(即添加新模块需要AppPool刷新).*CodeFirst非常适合POC.但在EF5,它不够成熟的企业工作但(我不能等待EF6的StoredProcs和其他功能添加).*我的DBA讨厌CodeFirst,至少对于Core来说,希望尽可能多地使用Stored Procs来优化那个部分......我们是一个团队,所以我必须设法找到一种方法来取悦他,如果我能想办法...
数据库一:
DbModel阶段似乎发生在DbContext的构造函数之前(从嵌入的*.edmx资源文件中读取).永远不会调用DbInitialization(因为模型被认为是完整的),所以我不能添加比Core知道更多的表.
如果我不能动态地向模型添加元素,就像使用CodeFirst一样,这意味着*Core DbContext的模型必须知道Db - Core和每个第三方模块中的每个表.使应用程序单片和高度耦合,击败我想要实现的东西.*或者每个第三方必须创建自己的DbContext,导入Core表,导致*版本问题(模块在更新Core的*.edmx时不更新其*.edmx等等)*复制无处不在,在不同的内存环境中=难跟踪并发问题.
在这一点上,在我看来,CodeFirst方法是使用EF实现Modular软件的唯一方法.但希望其他人知道如何使DatabaseFirst大放异彩 - 有没有办法将DbSet'附加'到嵌入式*.edmx文件创建的模型中?
还是其他任何想法?
我正在阅读有关仿制药的现有帖子.如果Generics有很多优点,如Type安全,没有装箱/拆箱的开销,而且速度很快,为什么不总是使用呢?为什么要使用非通用对象呢?
编辑(问题进一步扩展如下)
我有点困惑.几个月前我读到Generics的最后一次,我读到如果参数中的Type是可变的,那么应该使用Generic来防止错误.但我现在正在阅读的内容是,泛型将实现限制为固定类型,而非泛型对象允许您在运行时定义参数类型.
请帮我看看我错过了什么?
其次,在团队中工作并且代码可共享时,在适当的OOP设计(泛型等)中使用这些类型的构造会很有帮助.对于一个规模较小的独立程序员,谁知道Type必须参与哪个类型,似乎没有必要担心,使用Generic或Non-Generic类型之间差别不大.这准确吗?
我目前正在开发两个网站,并通过连接调试它们localhost
.
引用第一个站点,引用http://localhost/web1
第二个 站点http://localhost/web2
.
我为每个创建了一个登录脚本,其中设置了三个特定于域的会话变量,例如:
$_SESSION['web1_user']
$_SESSION['web1_login']
$_SESSION['web1_sessionID']
但是,当我在同一浏览器上登录这两个站点时,然后注销一个站点(触发,我也会自动从第二个站点注销).session_destroy()
关于如何解决这个问题的任何想法都将非常感激.:(
我目前有一个基于Ajax的聊天,我试图通过仅在更新发生时加载聊天脚本来简化.因此,如果数据库中没有任何变化,则无需继续加载.
我现在的逻辑说:
setInterval()
)但是,如果没有任何改变,那么继续调用它似乎相当低效.相反,我想做的是:
但是我怎么会这样呢?我目前使用的功能是:
function updateShouts() {
$('#chatArea').load('chat.php'); // load chat logs
}
setInterval("updateShouts()", 500); // call function every half a second
Run Code Online (Sandbox Code Playgroud) .net ×2
c# ×2
generics ×2
php ×2
.net-4.0 ×1
ajax ×1
app-config ×1
asp.net ×1
c#-4.0 ×1
cdata ×1
chat ×1
data-binding ×1
f# ×1
gridview ×1
java ×1
javascript ×1
lisp ×1
newline ×1
petapoco ×1
postgresql ×1
row-number ×1
sorting ×1
strip ×1
webforms ×1
xml ×1