情况
我正在创建一个C#/ WPF 4应用程序,使用SQL Compact Edition数据库作为实体框架的后端并使用ClickOnce进行部署.
我对使用数据库的应用程序很新,但我不怀疑我在设计和构建原始数据库时会遇到很多问题.但是,我担心将来我需要添加或更改一些功能,这些功能要求我在部署数据库并且用户在数据库中有数据后更改数据库设计.
问题
是否有可能通过clickonce更新将更新的数据库设计推送给用户,就像更改代码一样?
如果我这样做,用户的数据将如何受到影响?
这种事情在实际情况下是如何完成的?什么是最佳实践?
我认为在最坏的情况下,我需要在数据库或程序设置中构建某种"版本"编号,并创建一些例程来将用户当前版本的数据库迁移到新版本.
我很欣赏任何有关我的问题的见解.非常感谢.
我试图将一个id为'absPos'的div放在相对于其父div的绝对位置.但它不起作用,div位于页面的左上角.
我的代码示例如下
<html>
<body>
<div style="padding-left: 50px;">
<div style="height: 100px">
Some contents
<div>
<div style="height: 80px; padding-left: 20px;">
<div id="absPos" style="padding: 10px; position: absolute; left: 0px; top: 0px; background-color: red;"></div>
Some text
</div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
你能帮我解决这个问题吗?在我的实际情况下,而不是红色背景颜色,我要放置一个背景图像.
问候
如何使用一个实现实例注册两个服务?我用了:
_container.Register(Component.For(new [] { typeof(IHomeViewModel), typeof(IPageViewModel) }).
ImplementedBy(typeof(HomeViewModel)).Named("IHomeViewModel").LifeStyle.Singleton)
Run Code Online (Sandbox Code Playgroud)
但是上层代码注册了HomeViewModel的两个实例.
在如下所示的模板中,我希望调用Run(&Base::foo)成功,而无需将Base类型命名两次(如编译Run<Base>(&Base::foo)调用中所做的那样).我可以吗?可能没有添加大量的Boost标头?
使用提供的代码,我得到一个错误:
prog.cpp:26: error: no matching function for call to ‘Run(bool (Base::*)())’
Run Code Online (Sandbox Code Playgroud)
(你可以在http://ideone.com/8NZkq上摆弄这个片段):
#include <iostream>
class Base {
public:
bool foo() { return true; }
};
Base* x;
template<typename T>
struct Traits {
typedef bool (T::*BoolMethodPtr)();
};
template<typename T>
void Run(typename Traits<T>::BoolMethodPtr check) {
T* y = dynamic_cast<T*>(x);
std::cout << (y->*check)();
}
int main() {
Base y;
x = &y;
Run<Base>(&Base::foo);
Run(&Base::foo); // why error?
}
Run Code Online (Sandbox Code Playgroud) 处理Control.OnKeyPress事件时,有一个KeyPressEventArgs包含a KeyChar.
出于可用性原因,我需要完全相同KeyChar但处理OnKeyDown事件时.
在KeyEventArgs不包含任何字符有关的数据.我的意思是,如果A按键有或没有Shift影响KeyCode,KeyData或者KeyValue.使用另一种语言时,我仍然可以获得资本英语价值.
如何获得KeyPressEventArgs.KeyChar内部KeyDown活动?
谢谢.
我将通过python脚本测试是否已设置无密码ssh登录.如果我运行正常的ssh命令,它将等待接受密码一段时间.有一种方法,当ssh要求输入密码时,ssh命令应该返回错误.
是否有可能实现这一目标?
我一直在谷歌上搜索带有css div的圆角......但发现它们非常混乱......有些仍然用于圆角的图像并将它们放在四个角落......
可以帮助一些简单的CSS代码...或者可以用jQuery实现它
我有两个选择查询:
SELECT MONTH(date) AS month, count(DISTINCT ip)
FROM table_name WHERE field = 1 GROUP BY month
Run Code Online (Sandbox Code Playgroud)
和
SELECT MONTH(date) AS month, count(DISTINCT ip)
FROM table_name WHERE field = 2 GROUP BY month
Run Code Online (Sandbox Code Playgroud)
如何编写一个查询来进行选择
SELECT MONTH(date) AS month,
count(DISTINCT ip) [ for field = 1],
count(DISTINCT ip) [ for field = 2]
Run Code Online (Sandbox Code Playgroud) 所以标题有点误导......我会保持这个简单:我正在比较这两个数据结构:
不要担心这些数据结构的任何其他细节.这是我对此测试唯一关注的功能.
理论上,LL应该表现得更好.然而,它们在涉及10,100,1000 ......多达5,000,000个元素的时间测试中几乎相同.
我的直觉是堆很大.我认为Redhat上的数据段默认为10 MB?我错了.无论如何,realloc()首先检查在已分配的连续内存位置(0- [n-1])的末尾是否有空间可用.如果第n个位置可用,则不会重新定位元素.相反,realloc()只保留旧空间+紧接着的空格.我很难找到这方面的证据,而且我很难证明这个阵列在实践中应该比LL更差.
以下是阅读以下帖子后的进一步分析:
[更新#1]我已经修改了代码,使其具有一个单独的列表,该列表为LL和数组每隔50次迭代执行mallocs内存.对阵列增加了100万,几乎总是有18个动作.没有移动LL的概念.我做了一个时间比较,他们仍然几乎相同.这里有1000万个新增内容:
(Array)
time ./a.out a 10,000,000
real 0m31.266s
user 0m4.482s
sys 0m1.493s
(LL)
time ./a.out l 10,000,000
real 0m31.057s
user 0m4.696s
sys 0m1.297s
Run Code Online (Sandbox Code Playgroud)
我希望时间与18个动作完全不同.数组添加需要1次分配和1次比较以获取并检查realloc的返回值以确保发生移动.
[更新#2]我在上面发布的测试中运行了一个ltrace,我认为这是一个有趣的结果......看起来像realloc(或一些内存管理器)正在抢先将数组移动到更大的连续位置,基于目前的规模.对于500次迭代,在迭代时触发存储器移动:1,2,4,7,11,18,28,43,66,101,154,235,358这非常接近求和序列.我发现这很有意思 - 以为我会发布它.
c# ×2
css ×2
html ×2
.net ×1
arrays ×1
c ×1
c++ ×1
castle ×1
char ×1
controls ×1
css-position ×1
database ×1
deployment ×1
generics ×1
group-by ×1
keydown ×1
linked-list ×1
matlab ×1
mysql ×1
performance ×1
plot ×1
python ×1
select ×1
sql ×1
sql-server ×1
ssh ×1
ssh-keys ×1
templates ×1
traits ×1
unix ×1