问题列表 - 第23872页

如何在Entity Framework中删除多行(没有foreach)

我正在使用Entity Framework从表中删除多个项目.没有外键/父对象,因此我无法使用OnDeleteCascade处理此问题.

现在我这样做:

var widgets = context.Widgets
    .Where(w => w.WidgetId == widgetId);

foreach (Widget widget in widgets)
{
    context.Widgets.DeleteObject(widget);
}
context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

它有效但是foreach让我烦恼.我正在使用EF4,但我不想执行SQL.我只是想确保我没有遗漏任何东西 - 这一切都很好,对吧?我可以用扩展方法或帮助器来抽象它,但在某个地方我们仍然会做一个foreach,对吧?

entity-framework

292
推荐指数
11
解决办法
29万
查看次数

C#XNA:AI引擎?

我正在开发一款僵尸在沼泽中奔跑的游戏.我希望AI拥有"追逐这个目标"或"逃跑"等功能.一个主要障碍是寻路.在XNA中是否有一个好的寻路/ AI引擎,或者我应该自己动手?

有没有人有这方面的经验:http://www.codeplex.com/simpleAI

c# xna artificial-intelligence path-finding

9
推荐指数
1
解决办法
5180
查看次数

SQL Server-比较select子句中的int值

我以为这是一个简单的select子句,但是以下内容使我感到悲伤!我正在使用SQL Server 2008。

基本上,我想比较两个整数值并在select子句中返回布尔结果。这是一个简单的示例:

DECLARE @A INT
DECLARE @B INT
SET @A = 1
SET @B = 2

SELECT @A = @B
Run Code Online (Sandbox Code Playgroud)

当前唯一的输出是“命令已成功完成”。我有理由相信它将@A分配给@B。

我以为这很简单,但未能实现。

任何帮助将是巨大的!谢谢

sql-server

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

检查mmap的地址是否正确

我正在编写一个高负载的守护进程,它应该在FreeBSD 8.0和Linux上运行.守护程序的主要目的是传递其标识符请求的文件.通过对db的请求将标识符转换为本地文件名/文件大小.然后我使用顺序mmap()调用来传递文件块send().

但是有时文件系统中的db和filesize中的文件大小不匹配(realsize <db中的大小).在这种情况下,我发送了所有实际数据块,当下一个数据块被映射时 - mmap没有返回任何错误,只是通常的地址(我也检查过errno变量,它在mmap之后等于零).当守护进程尝试发送此块时,它会获得Segmentation Fault.(在FreeBSD 8.0 amd64上保证发布此行为)

我打开前使用安全检查以确保stat()通话时的尺寸.然而现实生活告诉我,在罕见的情况下仍然可以提升段错误.

所以,我的问题是有一种方法可以在解除引用之前检查指针是否可访问?当我在gdb中打开核心时,gdb说给定地址超出范围.可能有人可以提出另一个解决方案.

#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <time.h>
#include <unistd.h>

#define FILENAME        "./datafile"

int main()
{
    unsigned long i, j;

    srand(time(NULL));
    unsigned long pagesize = sysconf(_SC_PAGESIZE);

    unsigned long basesize = 4 * pagesize;
    unsigned long cropsize = 2 * pagesize;

    // create 4*pagesize sized file
    int f = creat(FILENAME, 0644);
    for (i = 0; i < basesize; …
Run Code Online (Sandbox Code Playgroud)

c high-load freebsd mmap segmentation-fault

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

为django模型生成独特的哈希值

我想为每个模型使用唯一的哈希而不是ID.

我实现了以下功能,可以轻松地全面使用它.

import random,hashlib
from base64 import urlsafe_b64encode

def set_unique_random_value(model_object,field_name='hash_uuid',length=5,use_sha=True,urlencode=False):
    while 1:
        uuid_number = str(random.random())[2:]
        uuid = hashlib.sha256(uuid_number).hexdigest() if use_sha else uuid_number
        uuid = uuid[:length]
        if urlencode:
            uuid = urlsafe_b64encode(uuid)[:-1]
        hash_id_dict = {field_name:uuid}
        try:
            model_object.__class__.objects.get(**hash_id_dict)
        except model_object.__class__.DoesNotExist:
            setattr(model_object,field_name,uuid)
            return
Run Code Online (Sandbox Code Playgroud)

我正在寻求反馈,我怎么能这样做?我怎样才能改进它?有什么好坏和丑陋的?

python random django hash

17
推荐指数
4
解决办法
2万
查看次数

优雅地处理EJB/JPA环境中的约束违规?

我在Glassfish v3应用服务器上使用EJB和JPA.我有一个实体类,我强迫其中一个字段与@Column注释是唯一的.

@Entity
public class MyEntity implements Serializable {

    private String uniqueName;

    public MyEntity() {
    }

    @Column(unique = true, nullable = false)
    public String getUniqueName() {
        return uniqueName;
    }

    public void setUniqueName(String uniqueName) {
        this.uniqueName = uniqueName;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试将此字段设置为非唯一值的对象持久化时,当EJB容器管理的事务提交时,我得到一个异常(如预期的那样).

我有两个问题需要解决:

1)我得到的例外是无用的"javax.ejb.EJBException:Transaction aborted".如果我递归调用getCause()足够多次,我最终会得到更有用的"java.sql.SQLIntegrityConstraintViolationException",但是这个异常是EclipseLink实现的一部分,我真的不习惯依赖它的存在.

有没有更好的方法来获取JPA的详细错误信息?

2)EJB容器坚持记录此错误,即使我抓住它并处理它.

有没有更好的方法来处理这个错误,这将阻止Glassfish使用无用的异常信息混乱我的日志?

谢谢.

java database jpa java-ee ejb-3.0

18
推荐指数
2
解决办法
2万
查看次数

我已经将Windows服务构建为"任何CPU".为什么它在我的64位机器上以32位模式运行?

我已经将Windows服务构建为"任何CPU".但是,当我在64位机器上运行时,它以32位运行.我该如何解决?我使用的是.NET和C#,我的操作系统是Windows 2008 R2.

如果我在x64中构建它,它会以64位模式正确加载.但是,"Any Cpu" - 这就是我想要的 - 加载32位,即使它运行的机器完全支持64位.

编辑以根据反馈添加更多信息

我们确实有第三方工具以及引用c ++托管程序集.这些可能是也可能不是为任何CPU构建的.事实上我知道c ++托管程序集只是为x86构建的.然而,奇怪的是,如果我专门指定x64,该进程将启动并在x64中工作.如果框架试图加载c ++托管程序集,它将失败.我不介意这一点,因为在代码中,如果我们以64位模式运行,我们不会加载32位托管++程序集.可能是因为构建数据,因为这里有32位程序集,它应该将启动过程(在本例中是一个Windows服务程序集)标记为x86?

.net 64-bit x86 multi-targeting

39
推荐指数
3
解决办法
3万
查看次数

正则表达式:用于确定有效 PHP 类属性名称的正则表达式?

我正在使用 PHP 的魔法__set__get方法来访问类中的私有数组。该类的使用可以包括“设置”新属性以及使用现有属性。我想确保创建或请求的属性名称(即$myObj->FakeProperty)根据以下规则有效:

  1. 属性名称必须以字母或下划线 [A-z_] 开头
  2. 如果以下划线开头,则后面必须跟一个字母
  3. 只要满足前两条规则,名称就可以包含 [A-z0-9_] 中的任何一个

我当前的正则表达式并不能解决问题;根据我的测试值,_12总是会落空。

测试领​​域:

albert12
12Albert
_12
_Albert12
_12Albert
_____a_1
Run Code Online (Sandbox Code Playgroud)

正则表达式:

^(?=_*[A-z]+)[A-z0-9_]+$
Run Code Online (Sandbox Code Playgroud)

php regex oop

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

css - 摆脱跨度之间的空间

我正在尝试使用html模拟标签栏

我想根据文本长度(即没有固定宽度)设置每个标签的宽度,并在超出屏幕宽度时自动换行

我几乎实现了它

<html>
<head>

<style type="text/css">
    #myTabs .tab {
    float: left;
    }

    #myTabs .tab_middle {
        margin: 0;
        padding: 0;
        border: none;
    background-image:url('images/tabs/tab_middle.png');
    }

    #myTabs .tab_left {
        margin: 0;
        padding: 0;
        border: none;
        background-image:url('images/tabs/tab_left.png');
    }

    #myTabs .tab_right {
        margin: 0;
        padding: 0;
        border: none;
    background-image:url('images/tabs/tab_right.png');
    }

</style>

</head>

<body>

<div id="myTabs">
  <div class='tab'>
        <span class='tab_left'>&nbsp;</span>
        <span class='tab_middle'>very very looong</span>
        <span class='tab_right'>&nbsp;</span>
    </div>
  <div class='tab'>
        <span class='tab_left'>&nbsp;</span>
        <span class='tab_middle'>another loooong tab</span>
        <span class='tab_right'>&nbsp;</span>
    </div>
    <div style='clear:both'></div>
</div>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

但是,在开启标签图像和结束标签图像之间有一个非常烦人的空间......

你可以看到我尝试过填充,间距和边框,没有运气...... …

html css padding

37
推荐指数
2
解决办法
3万
查看次数

在Windows中跨本地文件系统的GIT克隆repo

在谈到GIT时,我是一个完整的Noob.过去几天我一直在迈出第一步.我在我的笔记本电脑上设置了一个repo,从一个SVN项目中拉下了Trunk(有一些分支问题,没有让它们工作),但一切似乎都没问题.

我现在希望能够从笔记本电脑拉到或推送到我的主桌面.原因是笔记本电脑在火车上很方便,因为我每天花2个小时旅行,可以完成一些好的工作.但我家里的主机非常适合开发.因此,当我回到家时,我希望能够从笔记本电脑推/拉到主计算机.我认为最简单的方法是让局域网中的代码文件夹共享,并执行:

git clone file://192.168.10.51/code
Run Code Online (Sandbox Code Playgroud)

不幸的是,这似乎对我不起作用:

所以我打开一个git bash cmd并输入上面的命令,我在C:\ code(两台机器的共享文件夹)这是我得到的:

Initialized empty Git repository in C:/code/code/.git/
fatal: 'C:/Program Files (x86)/Git/code' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)

如何以最简单的方式在两台机器之间共享存储库.

将有其他位置将是官方存储点和其他开发人员和CI服务器等将从中拉出的位置,这样我就可以在两台计算机上处​​理相同的存储库.

根据塞巴斯蒂安的建议,我得到以下内容:

C:\code>git clone --no-hardlinks file://192.168.10.51/code
Initialized empty Git repository in C:/code/code/.git/
fatal: 'C:/Program Files (x86)/Git/code' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)

**编辑 - 答案**

感谢所有帮助.我尝试映射一个驱动器,这工作所以我想回去重试没有映射.最终结果是:

git clone file://\\\\192.168.0.51\code
Run Code Online (Sandbox Code Playgroud)

这很有效.

谢谢

windows git git-clone

199
推荐指数
5
解决办法
19万
查看次数