当Visual Studio自动生成dbml文件时,我会得到表中出现的确切字段名称.
但是,由于VS不为dbml提供刷新功能,因此我手动运行sqlmetal以重新创建dbml文件.它有一个例外 - sqlmetal"纠正"名称
ses_Id -> Ses_Id
aga_Id -> Aga_Id
Run Code Online (Sandbox Code Playgroud)
等等 - 它可能会将camelCase更改为CamelCase.
Sqlmetal帮助没有列出任何开关来保持字段名称按原样(只有复数开关).那么,有没有人知道隐藏的开关保持字段名称的情况?
先感谢您.
没有这样的开关,并且MS被通知了这个问题 - 添加这样的功能的愿望报告(因为它有更新项目的问题)被关闭为wontfix :-(
在你阅读完整篇文章之前请不要回答这个问题!谢谢.
由于所有助手都存在于C#中(如lambda或自动属性),因此我无法通过引用传递属性.让我们说我想这样做:
foo(ref my_class.prop);
Run Code Online (Sandbox Code Playgroud)
我收到错误所以我写了:
{
var tmp = my_class.prop;
foo(tmp);
my_class.prop = tmp;
}
Run Code Online (Sandbox Code Playgroud)
现在它有效.但请注意两件事:
它是通用模板,我没有放任何类型,只有"var",所以它适用于我必须通过的所有类型和数量的属性
我必须一遍又一遍地做,没有任何好处 - 这是机械工作
现有的问题实际上杀死了Swap等有用的功能.交换通常为3行,但由于它需要2个引用,因此调用它需要5行.当然这是无稽之谈,每次我都想用它来手写"交换".但这表明C#阻止了可重复使用的代码,这很糟糕.
那么 - 如果编译器自动创建临时变量(就像我手工做的那样)会发生什么不好,调用函数,并将值分配回属性?这有危险吗?我没有看到它,所以我很好奇你觉得为什么这个问题的设计看起来现在看起来如此.
干杯,
编辑因为280Z28提供了很好的例子来打败自动包装ref属性的想法,我仍然认为用临时变量包装属性会很有用.也许是这样的:
Swap(inout my_class.prop1,inout my_class.prop2);
Run Code Online (Sandbox Code Playgroud)
否则没有真正的交换C#:-(
算法名称是在一些数学家之后.
您可以逐行遍历图像,但您可以使用递归生成的路径遍历图像,基本块看起来像:
ü
这个是用于遍历2x2像素的图像.如果您有更大的图像,则为每个线段"乘以"此块(旋转或不旋转).结果是蛇状路径.
所以,也许你还记得这个算法的名字:-)提前谢谢你.
我有一个基于.net 3.5的dll - 它在内部使用例如Linq,但是暴露的API很简单,没有花哨的东西.由于C#泛型在编译时被解析,我认为对于调用方而言,所有重要的是API(所有公共部分).
但是,当我尝试使用net2.0项目中的这个dll时,我得到的信息是dll无法引用,因为dll或其中一个依赖项需要更高版本的.net框架.
我可以在目标计算机上安装我想要的任何.net版本(当安装整个应用程序时),但我不能为项目本身更改.net版本.
那么:如何解决这个问题?在这个项目中添加C dll时,我没有遇到过这样的问题,C#dll是否自包含?
我有一个音频流,我会从中提取单词(语音).所以例如有audio.wav我会得到001.wav,002.wav,003.wav等,其中每个XXX.wav是一个单词.
我正在寻找一个库或程序来做 - 平台没关系,但我更喜欢开源解决方案.
提前感谢您的帮助.
历史
我有一个"记录"列表(3,500),我保存到XML并在程序退出时压缩.以来:
我需要另一个解决方案 - 嵌入式数据 我之所以选择SQL CE,是因为它与VS一起使用没有任何问题,许可证对我来说是好的(我把它比作Firebird,SQLite,EffiProz,db4o和BerkeleyDB).
数据
记录结构:11个字段,其中2个构成主键(nvarchar + byte).其他记录是字节,数据时间,双精度和整数.
我不使用任何关系,连接,索引(主键除外),触发器,视图等.它实际上是平的字典 - 对键+值.我修改了其中一些,然后我必须在数据库中更新它们.我不时添加一些新的"记录",我需要存储(插入)它们.就这样.
LINQ方法
我有空白数据库(文件),所以我在一个循环(逐个)中进行3500插入.我甚至不检查记录是否已经存在,因为db是空白的.
执行时间处理时间?4分52秒 我昏了过去(记住你:XML + compress = 3秒).
SQL CE原始方法
我google了一下,尽管有这样的声明: LINQ to SQL(CE)速度与SqlCe 说明它是SQL CE本身的错误我试了一下.
相同的循环,但这次插入是使用SqlCeResultSet(DirectTable模式,请参阅:SQL Server CE中的批量插入)和SqlCeUpdatableRecord.
结果?你坐得舒服吗?好吧...... 0.3秒(是的,第二个的一小部分!).
问题
LINQ 非常易读,原始操作完全相反.我可以编写一个映射器,将所有列索引转换为有意义的名称,但它似乎重新发明轮子 - 毕竟它已经在... LINQ中完成了.
那么也许这是告诉LINQ加快速度的一种方式?问题 - 怎么做?
代码
LINQ
foreach (var entry in dict.Entries.Where(it => it.AlteredByLearning))
{
PrimLibrary.Database.Progress record = null;
record = new PrimLibrary.Database.Progress();
record.Text …
Run Code Online (Sandbox Code Playgroud) 这让我感到很困惑 - 我已经阅读了Scala存在的原因,并且常识引起了我的兴趣,例如选择静态类型(因为错误较少).然而,你可以比较(开箱即用,默认情况下)完全不同的,不相关的对象,它编译并运行良好.对我来说,它只是需要更多的代码错误.
有人可以解释一下这个功能的原因是什么?还是好处?
我知道Scala如何在比较中发挥作用.我问为什么它的工作原理.
我希望,如果我想这样做,我会写隐式转换或显式比较.这种方法对我来说非常有意义,当前的Scala方式 - 不,因此我的问题.
还有一件事 - 我不是在寻找如何使用Scala-way比较来获得一些奇特的效果,我正在寻找更严格的错误检查.IOW:我不想按颜色比较Orange和Apple,我想默认禁止这样的比较,除非用户明确表示可以比较这些类型.
class Test
{
val s : String = "ala"
}
class Foo
{
val x : Int = 5
}
object Testbed
{
def main(args : Array[String])
{
val t = new Test
val f = new Foo
if (t==f)
println("match")
else
println("no")
}
}
Run Code Online (Sandbox Code Playgroud) Nullable
(C#)有一些不同的含义,但无论如何两者Option
(Scala)Nullable
都可以用来表达"有价值或无价值"的概念.
例如,如果您想在字符串中找到子字符串 - 而不是将Intscure -1作为Int,最好返回Option [Int](在Scala中它将是None
无用的).
标准Java中是否有这样的类?如果是,那是什么?
请注意,我不是在问这样的课程.
正如我所写,Nullable
有不同的含义.考虑一下:
想象一下Map [K,V]和方法获取哪个语义是获取密钥的值,如果有这样的密钥,或者什么都没有这样的密钥.
你不能使用null有两个原因,你不能因为一个原因使用任何具体的类.选项[V]是要走的路.
DUPLICATE警告:这个问题适用于服务和前端,有一些类似的线程,但专注于GUI方法.
从任何状态开始(音乐在后台播放,屏幕打开(原文如此!),屏幕关闭,手机锁定,手机解锁等)我想改变状态中的一件事 - 打开屏幕.别的什么都不应该改变.
从某个已知状态开始,我锁定手机并关闭屏幕:
DevicePolicyManager dpm = (DevicePolicyManager)context
.getSystemService(Context.DEVICE_POLICY_SERVICE);
dpm.lockNow();
Run Code Online (Sandbox Code Playgroud)
所以从现在开始,打开屏幕意味着实际显示键盘.我尝试这样做:
userActivity
- 一切都没有发生PARTIAL_WAKE_LOCK
- 没有任何反应)或它触发屏幕,但只要我保持锁定.一旦我释放它,屏幕就会恢复到关闭状态(尽管我已经ON_AFTER_RELEASE
设置好了); 小问题是我必须稍后获得唤醒锁定,lockNow
因为否则lockNow
将被取消这几乎是由 Anton Cherkashyn 改变屏幕亮度系统设置Android的复制和粘贴
您需要添加触发屏幕的虚假活动:
public class DummyBrightnessActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
//this next line is very important, you need to finish your activity with slight delay
new Handler().postDelayed(new Runnable() {
public void run() {
DummyBrightnessActivity.this.finish();
} },0);
}
} …
Run Code Online (Sandbox Code Playgroud) 我对Kendo UI完全不熟悉,所以也许我错过了一些东西,但在阅读了docs API之后:http://docs.kendoui.com/api/framework/model似乎Kendo仅限于使用单一ID.
例如,假设我有一个网格,其中每一行都由一对值标识(因为基础数据具有这样的约束).那么,如果我读得正确,在剑道中没有直接表达方式吗?
我能想到的一个解决方法是创建一些ad-hoc值,它是编码的id,如"value1 | value2"(字符串),当从UI获取数据时,将它们解码回来.
还有更明确的方法吗?
具体的例子
专注于实质性的事情:
http://demos.kendoui.com/web/grid/editing-inline.html
相关代码是(来自.cshtml文件):
.Model(model => model.Id(p => p.ProductID))
就我而言,它将是(我能想到的最简单的方式):
.Model(model => model.Id(p => p.ProductComboId1Id2))
其中ProductComboId1Id2
是如上所述编码的字符串.
请参阅页面底部,这是Kendo安装的问题.安装程序脚本没有安装一个关键的.js文件,整个框架变得奇怪.我的问题是那些不当行为之一.