问题列表 - 第44287页

实体框架SET IDENTITY_INSERT

当我们有一个自动递增ID列时,有没有办法在EF中强制新实体的ID值,即通过EF使用SET IDENTITY_INSERT行为?

我们的要求是,在填写或保存之前,我们的创建表单必须始终为空表单上创建的对象显示新的唯一ID.我们的想法是,可以通过电话向某人读取此ID,然后用户可以在呼叫完成后完成并保存表单.我们可以通过在数据库中插入一个空行来保留ID然后,但是我们有唯一的列和FK; 相反,我已经创建了一个"下一个ID"表,我们使用锁来增加安全性,并且我还要对照对象表中的顶部ID进行测试,这一点也要小心.我们的想法是在我们回写实体时强制使用这个新ID - 但我看不出如何让EF去做.

这是可能的 - 这只是我错过的东西吗?我认为ID甚至不会影响插入,所以我不认为在SaveChanges周围手动调用SET IDENTITY_INSERT会有所帮助.

或者我还需要做别的事吗?我可以看到替代方案:

  • 将我们的ID列更改为不是标识并对其进行手动控制:此处有一个表ID继承,因此这也很棘手.
  • 将DB ID和用户可见ID分隔为单独的列,并在那里记录我们的唯一ID.
  • 空行以保留ID,如上所述; 可能需要一些可空性更改,并修改我们的数据读取代码以忽略这些记录.

谢谢!这是EF4(使用EDMX和生成的类而不是POCO),并且在重要的情况下针对SQL Server 2008.

entity-framework entity-framework-4

5
推荐指数
1
解决办法
2573
查看次数

在Objective C中声明和使用C函数

这一定非常简单,但我无法弄清楚如何做到这一点:我有一个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.因此,我认为,声明在某种程度上是错误的.我尝试了几个选项,但我能得到的最好的是运行时错误......如何解决这个问题?

c objective-c

3
推荐指数
1
解决办法
2301
查看次数

避免使用getfield操作码

在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]?)

难道是防止万一对象创建微调不会做任何事情(因此返回)或?

java bytecode opcode

30
推荐指数
2
解决办法
2569
查看次数

123
推荐指数
6
解决办法
24万
查看次数

在画布中的局部图像在铬

chrome对本地文件的访问受到限制,但我想在画布上绘制图像:使用文件输入选择的图像,不将图像发送到服务器然后再请求它.

一些帮助会很棒!

google-chrome canvas image local

6
推荐指数
1
解决办法
4073
查看次数

如何在用户帐户不匹配时进行远程调试?

如何在以下情况下配置Visual Studio远程调试:

  1. 我的开发人员计算机是AD域的成员,我的用户名是"DevelopersName".
  2. "远程"机器位于同一个以太网段上,但不属于域.
  3. "远程"机器必须在"RemoteUserName"下运行软件.

我能找到的大多数文档表明,您需要在同一个域中具有相同的用户名.这不可能.

我可以将我的用户名添加到"远程",但软件仍然需要在"RemoteUserName"下运行.

如果有帮助,我可以将第二张网卡添加到我的开发者机器并直接连接"远程"机器.

使用VS2008,但很快就会转向VS2010.

谢谢.

debugging remote-debugging visual-studio-2010 visual-studio-2008 visual-studio

6
推荐指数
1
解决办法
5965
查看次数

动态功能记忆?C++

我一直在阅读一些书籍,当谈到使用指针/动态内存(或堆或w/e,他们称之为)的类/功能时,我开始感到困惑.

有没有人有一个简单的......就像他们可以展示的简单例子一样,因为我使用的书籍使用的是过于复杂的例子(大类或多个函数),这使得很难遵循.指针一直是我的弱点,但我理解BASIC指针,只是使用它们的类/函数有点令人困惑.

另外.....你什么时候使用它们是另一个问题.

c++ pointers class dynamic-memory-allocation

2
推荐指数
1
解决办法
477
查看次数

是否有理由让每个WCF调用异步?

是否有理由让每个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)

c# wcf asynchronous

8
推荐指数
1
解决办法
1561
查看次数

当grep输出为空时,"grep THIS foo.txt> THIS.txt"在Makefile中给出错误,而不是在bash中

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以避免错误消息?

grep makefile

7
推荐指数
1
解决办法
3000
查看次数

当设备处于横向模式时显示软键盘

此代码似乎不适用于横向模式:

EditText destinationSearch = (EditText) findViewById(R.id.destinationSearch); 
Run Code Online (Sandbox Code Playgroud)

destinationSearch.requestFocus(); InputMethodManager imm =(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(destinationSearch,InputMethodManager.SHOW_IMPLICIT);

有没有解决方案在横向模式下显示软键盘?

java android landscape android-softkeyboard

8
推荐指数
1
解决办法
3388
查看次数