因此,我们现在知道Visual Studio 2013不再支持SQL Server CE.我们可以通过SQL Server CE Toolbox插件获得一些访问权限,但这并不能解决数据提供程序未包含在内的问题我们不能再使用带有实体框架等的SQL Server CE.
我还没有从MS那里得到一个解释,为什么现在这个都没有了,但我现在已经接受了它,并且正在寻找继续前进的方法.
我的问题是 - 这是什么最好的迁移路径?我一直在使用数据优先实体框架与SQL Server CE,并部署使用小.sdf
文件的小型网站,并且更新很容易部署 - 只需复制文件.SQL Server Express不会以这种方式工作.对于桌面/ WPF/winforms应用程序,我认为这更令人困惑,因为进程内SQL Server CE数据库非常适合小型桌面应用程序.
我想构建一个接受字符串参数的方法,以及一个我想根据参数返回特定成员的对象.所以,最简单的方法是构建一个switch语句:
public GetMemberByName(MyObject myobj, string name)
{
switch(name){
case "PropOne": return myobj.prop1;
case "PropTwo": return myobj.prop2;
}
}
Run Code Online (Sandbox Code Playgroud)
这样可以正常工作,但我最终可能会找到一个相当大的列表...所以我很好奇是否有一种方法,没有编写一堆嵌套的if-else结构,以索引方式实现这一点,以便匹配字段通过索引找到而不是通过开关掉落直到找到匹配.
我考虑使用a Dictionary<string, something>
来快速访问匹配的字符串(作为关键成员),但由于我想访问传入对象的成员,我不确定如何实现.
我特意试图避免反射等,以便实现非常快速.我可能会使用代码生成,所以解决方案不需要小/紧等.
我最初正在构建一个字典,但每个对象都在初始化它.所以我开始将它移动到一个方法,可以根据键 - 一个switch语句查找值.但由于我不再编入索引,我担心调用此方法的连续查找会很慢.
SO:我正在寻找一种方法来结合索引/散列查找(如字典使用)的性能与返回传入对象的特定属性.我可能会将它放在用于它的每个类中的静态方法中.
我注意到现代的基于html5的地理定位总是要求用户"你想与这个网站分享你的位置吗?".这很好,但我知道还有其他尝试确定球场地理位置的路线,而无需申请此权限.如果我记得,这些服务使用ip数据库来尝试跟踪geolocaiton信息并将其提供给Web应用程序.
因此,在我的网站上,我希望在用户的邮政编码中获得"最佳猜测",而不会要求地理位置权限.这样做最简单和/或最好的方法是什么?
我有一些想法我想尝试与数据压缩相关,但我发现很难破译标准如何在“现实生活中”应用的某些部分。我想查看一些示例压缩文件,以观察块的排列方式和霍夫曼树的结构。
是否有任何工具可以帮助对给定的压缩文件(zip/gzip/deflate 等)进行可视化?我正在想象像树视图或某种形式的图形可视化器之类的东西。
我想创建一个 Window 对象,设置一些值,然后直接发送到打印机而不显示它。我认为这是正确的做法,但显示了一个空白文档。
PrintDialog dlg = new PrintDialog();
ReportWindow rw = new ReportWindow(); //WPF Window object
var sz = new Size(96*8.5, 96*11); //size of a paper page, 8.5x11
rw.Measure(sz); rw.Arrange(new Rect(sz));
// rw.Show(); //want to keep it hidden
dlg.PrintVisual(rw, "report printout");
rw.Close();
Run Code Online (Sandbox Code Playgroud)
为了验证打印代码是否正确,我将其放入表单 Loaded 事件中,调用 Show(),它工作正常。
最简单的方法,也许来自扩展方法?:
var MyDic = new Dictionary<string,string>{ "key1", "val1", "key2", "val2", ...};
Run Code Online (Sandbox Code Playgroud)
当字典结束时,条目包含来自简单字符串列表的键和值对,每隔一个字符串交替作为键和值.
我从这个方法得到了奇怪的结果:
public static double YFromDepth(double Depth, double? StartDepth, double? PrintScale)
{
return (Depth - StartDepth ?? Globals.StartDepth) * PrintScale ?? Constants.YPixelsPerUnit ;
}
Run Code Online (Sandbox Code Playgroud)
当我将null传递给StartDepth时,合并失败,因为正在评估"Depth - StartDepth",首先将StartDepth转换为默认值0(降级?),而不是首先查看它是否为null并替换为Globals.相反,StartDepth.
这是一件众所周知的事吗?我能够通过添加括号来完成这项工作,但我真的不希望事情以这种方式工作.
我想在数据网格中有一个组合框来显示实际图像的列表,而不是文本。
我可以通过手动构建组合框来完成这项工作,但似乎无法通过绑定来完成(这是可以使用数据网格的唯一方式)。
我也尝试过,template column,
但得到了相同的结果 - 显示图像类名称的文本列表。任何样本证明这一点?
我一直在使用键入到我的自定义类中的字典,然后将它们从外部值中剔除。为了更好的封装,我想使用类的属性之一作为键值。有没有一种简单的方法可以在不创建字典的自定义实现的情况下做到这一点?
例子:
public class MyStuff{
public int num{get;set;}
public string val1{get;set;}
public string val2{get;set;}
}
var dic = new Dictionary<int, MyStuff>();
Run Code Online (Sandbox Code Playgroud)
有没有类似的选项?——
var dic = new Dictionary<x=> x.num, MyStuff>();
Run Code Online (Sandbox Code Playgroud) 我很好奇我是否忽略了一些明显的东西:我经常使用List<T>
,而且我经常需要检查它是否包含任何值.我打电话List<T>.Count()
来查看计数是否大于0.这感觉就像一个昂贵的操作,只是想看看它是否包含任何值.
检查这个有一些被忽视的方法吗?一个IsEmpty()
样的事情?
我已经阅读了相互矛盾的事情:在ASP.Net(和MVC)中,是否Request.Url.Host
返回请求的主机头?我已经看到了Request.Headers["host"]
首先检查的代码,然后Request.Url.Host
在出现问题时降级为使用,但我不明白为什么如果它们相同则需要这样做.
c# ×6
.net ×4
dictionary ×3
generics ×2
wpf ×2
asp.net ×1
asp.net-mvc ×1
compression ×1
data-binding ×1
datagrid ×1
geolocation ×1
gzip ×1
javascript ×1
localdb ×1
location ×1
null ×1
printing ×1
silverlight ×1
web ×1
xaml ×1
zip ×1
zipcode ×1