当我们有一个自动递增ID列时,有没有办法在EF中强制新实体的ID值,即通过EF使用SET IDENTITY_INSERT行为?
我们的要求是,在填写或保存之前,我们的创建表单必须始终为空表单上创建的对象显示新的唯一ID.我们的想法是,可以通过电话向某人读取此ID,然后用户可以在呼叫完成后完成并保存表单.我们可以通过在数据库中插入一个空行来保留ID然后,但是我们有唯一的列和FK; 相反,我已经创建了一个"下一个ID"表,我们使用锁来增加安全性,并且我还要对照对象表中的顶部ID进行测试,这一点也要小心.我们的想法是在我们回写实体时强制使用这个新ID - 但我看不出如何让EF去做.
这是可能的 - 这只是我错过的东西吗?我认为ID甚至不会影响插入,所以我不认为在SaveChanges周围手动调用SET IDENTITY_INSERT会有所帮助.
或者我还需要做别的事吗?我可以看到替代方案:
谢谢!这是EF4(使用EDMX和生成的类而不是POCO),并且在重要的情况下针对SQL Server 2008.
这一定非常简单,但我无法弄清楚如何做到这一点:我有一个C函数来监控当前的内存使用情况:
natural_t report_memory(void) {
struct task_basic_info info;
mach_msg_type_number_t size = sizeof(info);
kern_return_t kerr = task_info(mach_task_self(),
TASK_BASIC_INFO,
(task_info_t)&info,
&size);
if( kerr == KERN_SUCCESS ) {
return info.resident_size;
} else {
NSLog(@"Error with task_info(): %s", mach_error_string(kerr));
return 0;
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我想用它.我如何在.h中声明它?我在目标c方法中尝试了(对我而言):
natural_t report_memory(void);
Run Code Online (Sandbox Code Playgroud)
在代码中的某个地方调用它:
NSLog(@"Memory used: %u", rvC.report_memory());
Run Code Online (Sandbox Code Playgroud)
编译器抱怨error: called object is not a function.因此,我认为,声明在某种程度上是错误的.我尝试了几个选项,但我能得到的最好的是运行时错误......如何解决这个问题?
在Java的String类中,trim方法包含:
int off = offset; /* avoid getfield opcode */
char[] val = value; /* avoid getfield opcode */
Run Code Online (Sandbox Code Playgroud)
我对评论"避免getfield操作码"感到有些困惑......
这是什么意思?(我认为这可以避免在字节码中使用getfield,但为什么这是一个Good Thing [TM]?)
难道是防止万一对象创建微调不会做任何事情(因此该返回)或?
如何以编程方式将活动的背景颜色设置为白色?
chrome对本地文件的访问受到限制,但我想在画布上绘制图像:使用文件输入选择的图像,不将图像发送到服务器然后再请求它.
一些帮助会很棒!
如何在以下情况下配置Visual Studio远程调试:
我能找到的大多数文档表明,您需要在同一个域中具有相同的用户名.这不可能.
我可以将我的用户名添加到"远程",但软件仍然需要在"RemoteUserName"下运行.
如果有帮助,我可以将第二张网卡添加到我的开发者机器并直接连接"远程"机器.
使用VS2008,但很快就会转向VS2010.
谢谢.
debugging remote-debugging visual-studio-2010 visual-studio-2008 visual-studio
我一直在阅读一些书籍,当谈到使用指针/动态内存(或堆或w/e,他们称之为)的类/功能时,我开始感到困惑.
有没有人有一个简单的......就像他们可以展示的简单例子一样,因为我使用的书籍使用的是过于复杂的例子(大类或多个函数),这使得很难遵循.指针一直是我的弱点,但我理解BASIC指针,只是使用它们的类/函数有点令人困惑.
另外.....你什么时候使用它们是另一个问题.
是否有理由让每个WCF服务调用异步?
我和我的伙伴正在讨论这个问题.他想让每个WPF服务调用Async以避免锁定UI(它是桌面WPF应用程序).我反对这个想法.在大多数情况下,我不认为需要异步调用,并且在需要时,应该专门编码RequestingClass和DataManager来处理异步调用.
我的论点是,为所有事情设置回调的代码要多得多,而且非常令人困惑.我也认为这可能会导致性能下降,尽管我尚未对此进行验证.他的论点是,有时候你会收到大量数据并且会锁定用户界面,并且设置这样的WCF调用并不是那么多工作(他也没有发现下面的代码令人困惑).
我们之前从未使用过WCF服务器,所以我想我会给他带来疑问,并在这里询问其他一些意见.
例如:
我的方式:
public override User GetById(int id)
{
return new User(service.GetUserById(id));
}
Run Code Online (Sandbox Code Playgroud)
它锁定UI,UserDataManager和WCF服务通道,直到WCF服务器返回User DataTransferObject,但它易于理解并快速编码.它将用于大多数WCF服务调用,除非它实际上预期获取数据的延迟,在这种情况下DataManager将被设置为处理异步调用.
他的方法:
public override void GetById(int id, Action<UserGroup> callback = null)
{
// This is a queue of all callbacks waiting for a GetById request
if (AddToSelectbyIdQueue(id, callback))
return;
// Setup Async Call
var wrapper = new AsyncPatternWrapper<UserDTO>(
(cb, asyncState) => server.BeginGetUserById(id, cb, asyncState),
Global.Instance.Server.EndGetUserById);
// Hookup Callback
wrapper.ObserveOnDispatcher().Subscribe(GetByIdCompleted);
// Run Async Call
wrapper.Invoke();
}
private void GetByIdCompleted(UserDTO dto)
{
User user = …Run Code Online (Sandbox Code Playgroud) Makefile如下:
THIS.txt : foo.txt
grep THIS foo.txt > $@
Run Code Online (Sandbox Code Playgroud)
当grep输出为空(foo.txt中没有这个)时,make会给出一条错误消息,bash不会:
$ make
make:*** [THIS.txt] Error 1
$ grep THIS foo.txt > THIS.txt
$ grep THIS foo.txt 2>&1
Run Code Online (Sandbox Code Playgroud)
怎么会?当grep输出为空时,我应该如何修改我的makefile以避免错误消息?
此代码似乎不适用于横向模式:
Run Code Online (Sandbox Code Playgroud)EditText destinationSearch = (EditText) findViewById(R.id.destinationSearch);destinationSearch.requestFocus(); InputMethodManager imm =(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(destinationSearch,InputMethodManager.SHOW_IMPLICIT);
有没有解决方案在横向模式下显示软键盘?