我正在使用VS2010和MySQL .NET Connector.我以前工作的项目开始报告:
错误175:找不到指定的数据存储提供程序,或者无效.
我不知道为什么,虽然在MS建议修改VS之后事情变得奇怪了.
果然,如果我去测试ADO.NET实体数据模型添加到项目中,实体数据模型向导生成.edmx文件不显示数据提供者时,我选择"从数据库生成".更糟糕的是,右键单击并尝试在现有的.edmx文件上执行"从数据库更新模型..."会将VS2010发送到死亡螺旋形的对话框中,这些对话框只能通过任务管理器终止.
以下是我修复它的方法:关闭VS2010.完全卸载MySQL Connector.重启.完全安装MySQL连接器.重启.重启VS2010.
突然间,我的数据提供者存在.我可以编译我的代码.以及添加测试.edmx文件.向导会看到我的MySQL数据库,传递测试连接,并使用我的关系表构建对象模型.我可以尽可能多地清理/重建.
一切都很好,直到我运行应用程序.我的"修复"不坚持.
此时抛出异常,声明连接对象返回null,如果我重新编译而没有更改代码,则会再次出现Error 175错误.泡沫,冲洗,重复.
基于此StackOverflow答案的一些实验显示连接字符串有效,并且使用MySqlConnection对象,我可以访问数据库并在此状态下滚动我自己的工作查询.
问题似乎是数据存储提供商以某种方式迷失或踩到了,这正在影响通过EntityFrameworks执行操作的能力.
我正在寻找一些关于在哪里寻找这些存储的建议,如果有人遇到类似的东西,如果有任何有用的建议或想法,你认为我可能会尝试.
更新 - 虽然这个花絮没有解决我的问题,但它确实使VS2010更稳定:卸载.NET Connector后,我立即检查了控制面板的安装程序,发现还安装了较旧的.NET Connector.我从控制面板上卸下了一个,重新启动,然后安装了新的.VS2010现在记住了使用EntityFrameworks的数据库提供程序.显然我安装了一个更新的MySQL连接器,认为它会卸载旧的连接器,而不是互相遍历.
现在我得到一个System.ArgumentException内部System.Data.Entity.dll陈述略有不同的消息:
在配置中找不到指定的商店提供商,或者无效.System.ArgumentException:无法找到请求的.Net Framework数据提供程序.它可能没有安装.
这种情况发生在该System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName)方法中.
修订注 - 上述罢工的原因是VS2010最终确实再次失去了设置.但我能够从控制面板卸载.Net连接器并重新安装连接器,无需重新启动,并在环境中重新启动数据提供程序.问题的这一部分更像是VS2010错误,而不是.NET Connector问题.
我试图理解为什么我得到以下错误,而不是如何解决它.
通过下面的代码来的JSLint或JSHint产生了错误"ERR"已定义.
/*jslint white: true, devel: true, onevar: true, browser: true, undef: true, nomen: true, regexp: true, plusplus: true, windows: true, bitwise: true, newcap: true, strict: true, maxerr: 50, indent: 4 */
function xyzzy() {
"use strict";
try { /*Step 1*/ } catch (err) { }
try { /*Step 2*/ } catch (err) { }
}
Run Code Online (Sandbox Code Playgroud)
这里显而易见的假设是catch行为,或应该表现得像一个函数.因此,err既不是一个全局变量,也不是一个局部变量来xyzzy,而是一个参数为catch块.
在浏览ECMA-262标准,12.14节描述的 …
此语法有效:
$b{"x"} = [1,2,3];
pp %b;
# Displays ("x", [1, 2, 3])
Run Code Online (Sandbox Code Playgroud)
但是我需要能够动态创建数组的内容并在以后分配它.这不起作用; 帮助,我错过的显而易见的部分是什么?
@a = [1,2,3];
$b{"x"} = @a;
pp %b;
# Shows up as ("x", 1) ... not what I want or expected.
Run Code Online (Sandbox Code Playgroud)
也试过这些变化.
$b{"x"} = [@a]; # ("x", [[1, 2, 3]]) ...close
$b{"x"} = \@a; # ("x", [[1, 2, 3]])
$b{"x"} = [\@a]; # ("x", [[[1, 2, 3]]])
$b{"x"} = %a; # ("x", 0)
$b{"x"} = $a; # ("x", undef)
$b{"x"} = [$a]; # ("x", [undef]) …Run Code Online (Sandbox Code Playgroud) 我正在使用代码隐藏在WPF FlowDocument中呈现一个表.但是,我一直无法找到一个示例,说明如何使表只使用基于内容所需的空间.相反,该表占用了我不想要的所有可用宽度,我也不想指定精确的像素大小.
我显然遗漏了一些简单的东西,有人看到了吗?
var fd = new FlowDocument();
Table t = new Table();
t.BorderBrush = Brushes.Black;
t.BorderThickness = new Thickness(2);
// I thought this would do what I wanted...
t.Columns.Add(new TableColumn() { Width = GridLength.Auto });
t.Columns.Add(new TableCOlumn() { Width = GridLength.Auto });
TableRowGroup trg = new TableRowGroup();
TableRow currentRow = new TableRow();
currentRow.Cells.Add(new TableCell(new Paragraph(new Run("ABC"))));
currentRow.Cells.Add(new TableCell(new Paragraph(new Run("XYZ"))));
trg.Rows.Add(currentRow);
currentRow = new TableRow();
currentRow.Cells.Add(new TableCell(new Paragraph(new Run("123"))));
currentRow.Cells.Add(new TableCell(new Paragraph(new Run("789"))));
trg.Rows.Add(currentRow); …Run Code Online (Sandbox Code Playgroud) 背景:我是OpenLayers的一个只有几个小时的新手,请保持温柔.
从根本上说,我有一个地图上有一些绘制的对象.如果我理解正确,我有一些OpenLayer.Feature.Vector(layers?),上面有许多OpenLayer.Geometry"thing"(如LinearRing).
目前,我似乎能够使用.toString()获得几何体的良好表示.是的,我怀疑我做错了 - 随意指出我正确的方向.
这产生了一个非常人性化的,可存储数据库的字符串,例如:
要点(-104.74560546875 44.2841796875)
POLYGON(( - 96.52783203125 44.6796875,-96.52783203125 45.734375,-92.22119140625 45.734375,-92.22119140625 44.6796875,-96.52783203125 44.6796875))
LINESTRING(-105.71240234375 44.6796875,-106.06396484375 42.658203125,-103.55908203125 42.7021484375,-103.47119140625 45.55859375,-104.65771484375 45.20703125)
有没有一种相反的方法可以将它们从那里带回到对象格式中?
我喜欢使用JSON,但似乎无法让GeoJSON接受我的OpenLayer.Feature.Vector对象(这是CLASS_NAME属性在我进入内部时所说的).
非常感谢.
使用MongoDB v2.6,如果从大型结果集中对游标进行排序以获得溢出,则这种情况并不少见.
cursor = db.collection.find( { "key" : "value" } )
cursor.sort( { "rank" : 1 } ) // This can blow up
Run Code Online (Sandbox Code Playgroud)
该错误看起来很像:
运行器错误:溢出排序阶段缓冲数据使用量为33598393字节超过内部限制33554432字节
在这种情况下,解决方案是为排序标准提供索引,而不仅仅是密钥.
db.collection.ensureIndex( { "rank" : 1 } ) // ascending
Run Code Online (Sandbox Code Playgroud)
这很美妙.
我在另一个地方遇到了这个问题,一个文本索引. 按照MongoDB手册中有关文本索引创建的说明,我完成了以下操作:
db.collection.ensureIndex(
{ "$**": "text" },
{ name: "TextIndex" }
)
Run Code Online (Sandbox Code Playgroud)
并且,这已在集合中所有ExtendedJSON对象的所有字段上创建了一个文本索引.
搜索工作完美.
cursor = db.collection.find( { "$text" : { "$search" : "NEEDLE" } } )
cursor.count() // w00t! records …Run Code Online (Sandbox Code Playgroud) 我通过阅读ImageMagick 文档中有关文本的理解,该@-符号读取标准输入的内容。
因此,这应该是渲染 Hello World 的一种相当简单的方法。
printf "Hello\nWorld" |
convert \
-size 1280x100 \
-background '#0000FF10' \
-density 90 \
-gravity Center \
-fill black \
-font Helvetica \
caption:@- \
test.png
Run Code Online (Sandbox Code Playgroud)
在 OS X 10.11.5 上通过HomeBrew,这可以工作,使用convert版本:ImageMagick 6.9.4-3 Q16 x86_64 2016-05-20。
然而,在 Ubuntu 16.04 LTS 上,相同的命令不起作用,使用convert版本:ImageMagick 6.8.9-9 Q16 x86_64 2016-06-01。事实上,它从字面上呈现了 stdin 运算符。
我在 Google 上唯一能找到的看起来像这个问题的文章是2015 年 10 月的这篇文章,其中对 ImageMagick 6.9.2-5 Beta 进行了修补以修复类似的问题。
问题:我是否没有正确转义它,ImageMagick 中是否确实存在问题,或者我的 Linux 发行版是否使用了带有错误的 ImageMagick …
我知道并使用xxx.Dispatcher.Invoke()方法来获取后台线程来操作GUI元素.我想我正在碰到类似的东西,但略有不同,我想要一个长时间运行的后台任务来构建一个对象树,并在完成时将其交给GUI进行显示.
尝试这样做会导致InvalidOperationException,"由于调用线程无法访问此对象,因为其他线程拥有它." 奇怪的是,简单类型不会发生这种情况.
下面是一些示例代码,演示抛出异常的简单案例.知道如何解决这个问题吗?我很确定问题是后台线程拥有工厂构造的对象,并且前台GUI线程不能取得所有权,尽管它适用于更简单的系统类型.
private void button1_Click(object sender, RoutedEventArgs e)
{
// These two objects are created on the GUI thread
String abc = "ABC";
Paragraph p = new Paragraph();
BackgroundWorker bgw = new BackgroundWorker();
// These two variables are place holders to give scoping access
String def = null;
Run r = null;
// Initialize the place holders with objects created on the background thread
bgw.DoWork += (s1,e2) =>
{
def = "DEF";
r = new Run("blah");
};
// …Run Code Online (Sandbox Code Playgroud) c# wpf dispatcher invalidoperationexception backgroundworker
除了罕见的情况,eval()在JavaScript中被认为是不好的做法.
我刚刚遇到一个代码片段,它接受一个字符串并按该类型名称构造一个对象.执行此操作的错误检查,业务逻辑和上下文已删除,这是它的样子:
function factory(klass) {
eval("var obj = new " + klass + "()"); // Is there a better way?
return obj;
}
Run Code Online (Sandbox Code Playgroud)
是否有更好的(更安全,更清洁和/或更快)的方法来完成类创建而不使用eval?
我正在寻找一种通过名称创建类的通用方法.
例如,想象一下,例如,代码的另一部分动态地加载JavaScript文件,生成代码或允许用户扩展,但是代码的其他部分需要在没有工厂事先知道其存在的情况下制作该类.
我在寻找的迂腐的方式来测试是否东西是原子或没有,如(atom? ...)Clojure中的谓语,类似家庭(number? ...),(string? ...),(vector? ...),等。
鉴于 Atoms 是 Clojure 的主要语言特性,使用 . 创建(atom ...),我必须编写自己的自定义函数来测试内部实现类,这感觉是错误的。例如,
(defn atom? [a] (= (type a) clojure.lang.Atom))
Run Code Online (Sandbox Code Playgroud)
我缺少更正确的范例或内置语言功能吗?
注意:这个问题与 Scheme 的“原子”无关,也不相同(atom? ...),它们是非空 cos 对。
简而言之,我试图在 VueJS (v2.5.17) 中做这样的事情:
<table>
<my-multi-row-entry v-for="t in things" :thing="t" :key="t.id"/>
</table>
Run Code Online (Sandbox Code Playgroud)
问题是每件事都由两个<TR>...</TR>条目表示。(我正在移植别人的代码;第一行中的表数据跨越到第二行,等等,所以现在我想保留他们所拥有的。)
显而易见的解决方案不起作用,因为 VueJS 只需要向 DOM 发出一个根元素。
MyMultiRowEntry.vue (不是有效的代码,但显示是为了说明)
<template>
<tr><td rowspan="2">{{ thing.foo }}</td><td>...</td><td>{{ thing.bar }}</td></tr>
<tr><td>{{ thing.xyzzy }}</td></tr>
</template>
<script>
export default {
props: {
thing: {
type: Object,
required: true
}
}
};
</script>
Run Code Online (Sandbox Code Playgroud)
我已经探索过的路径:
Vue 没有片段(我知道),例如<React.Fragment>,所以我无法制作逻辑包装器。
HTML 本身不喜欢<div>包装表的角色。
实际的模板内容比这个简单的例子更复杂,所以它不是静态内容......还有其他 Vue 绑定等等,这禁止了其他技巧。
唯一的其他类似答案是采用不同的方法并遇到其他问题。
实现上述意图的最佳方法是什么?
javascript ×2
wpf ×2
.net ×1
arrays ×1
bash ×1
c# ×1
clojure ×1
dataprovider ×1
dispatcher ×1
eval ×1
flowdocument ×1
geojson ×1
geospatial ×1
hash ×1
imagemagick ×1
jslint ×1
json ×1
linux ×1
mongodb ×1
mysql ×1
openlayers ×1
perl ×1
persistence ×1
scope ×1
sorting ×1
syntax ×1
text ×1
try-catch ×1
ubuntu ×1
vue.js ×1
vuejs2 ×1