问题列表 - 第49442页

使用OR-Mapper是否有意义?

使用OR映射器是否有意义?

我把这个问题放在堆栈溢出处,因为这是我所知道的最好的地方,可以找到愿意提供帮助和意见的智能开发人员.

我的推理如下:

1.)SQL在哪里?

a.)在我参与的每个专业项目中,数据的安全性是关键要求.存储过程为控制访问和审计提供了一个自然的网关.

b.)生产中的应用程序问题通常可以在表和存储过程之间解决,而无需推出新的构建.

2.)如何控制生成的SQL?我信任解析树以生成有效的SQL.我在SQL-Server和Oracle中优化SQL方面有相当多的经验,但如果我再也不必这样做,就不会感到受骗.:)

3.)如果我从存储过程中获取数据,使用OR-Mapper有什么意义?

我已将存储库模式与本地通用数据访问层一起使用.如果需要缓存集合,我会缓存它.我也有在小型CRUD应用程序上使用EF的经验,并且有助于调整遇到性能问题的NHibernate应用程序.所以我有点偏颇,但愿意学习.

在过去的几年里,我们都听到很多受人尊敬的开发人员提倡使用特定的OR-Mappers(实体框架,NHibernate等......).

任何人都可以告诉我为什么有人应该转向ORM主流项目的主流开发?

编辑:http://www.codinghorror.com/blog/2006/06/object-relational-mapping-is-the-vietnam-of-computer-science.html似乎对这个话题进行了强有力的讨论,但它已经出来了约会

另一个编辑:每个人似乎都同意存储过程将用于重型企业应用程序,因为它们具有性能优势,并且能够将编程逻辑添加到数据附近.

我看到支持OR映射器的最有力论据是开发人员的工作效率.

我怀疑ORM运动的一个重要推动因素是开发人员对剩余持久性不可知的偏好(不关心数据是在内存中[除非缓存]还是在数据库上).

ORM似乎是本地和小型Web应用程序的优秀节省时间.

也许我所看到的最好的建议来自client09:使用ORM设置,但使用存储过程来处理数据库密集型的东西(当ORM看起来不够时,使用AKA).

database nhibernate orm entity-framework linq-to-nhibernate

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

Java将文件读入ArrayList?

你如何将文件的内容读入ArrayList<String>Java中?

这是文件内容:

cat
house
dog
.
.
.
Run Code Online (Sandbox Code Playgroud)

只需阅读每个单词ArrayList.

java

60
推荐指数
6
解决办法
27万
查看次数

无法修改char* - 内存访问冲突

为什么会说"内存访问违规"?

  char* str = "HelloGuys";
  int len = strlen(str);
  for (int i=0; i<(len/2); ++i){
        char t = str[len-i-1];
        str[len-i-1] = str[i]; //error
        str[i] = t;
  }
Run Code Online (Sandbox Code Playgroud)

c++ arrays pointers char

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

如何在地址范围&gt; 4 GiB中分配

我正在尝试在X86_64 Linux上进行一些测试,并且我想知道如何使malloc()分配大于4 GiB范围内的返回地址

我是否必须使用单独的/自定义库覆盖malloc还是有其他简单的方法来做到这一点?

谢谢。

- - 编辑 - -

我感兴趣的是将地址当作uintptr_t)时的地址,它的虚拟地址还是物理地址都没有关系,因为我想要的就是该地址必须是大于4GiB 的

我在Linux x86_64上将gcc(4.2.1)与一起使用-m64

(希望我把问题弄清楚了)

c malloc

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

C#无法创建实例,因为Type.ContainsGenericParameters为true

我正在尝试反序列化,Generic<T> where T : struct但是当我调用时,ctor.Invoke(args); 我得到异常"无法创建实例,因为Type.ContainsGenericParameters为true".

如何传递我想要的泛型类型?

.net c# generics reflection

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

是否可以对外键关系进行非规范化?

我有以下(简化的)MySQL架构:

companies
+------------+--------------+------+-----+---------+----------------+
| Field      | Type         | Null | Key | Default | Extra          |
+------------+--------------+------+-----+---------+----------------+
| id         | int(11)      | NO   | PRI | NULL    | auto_increment |
| name       | varchar(255) | YES  |     | NULL    |                |
+------------+--------------+------+-----+---------+----------------+

users
+----------------------+--------------+------+-----+---------+----------------+
| Field                | Type         | Null | Key | Default | Extra          |
+----------------------+--------------+------+-----+---------+----------------+
| id                   | int(11)      | NO   | PRI | NULL    | auto_increment |
| email                | varchar(255) | NO   |     |         | …
Run Code Online (Sandbox Code Playgroud)

mysql sql join

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

MediaPlayer在mp3播放开始时口吃

我在播放存储在原始资源中的mp3文件时遇到了问题:当文件首次开始播放时,它可能会生成四分之一秒的声音,然后重新启动.(我知道这基本上是这里描述的问题的重复,但是那里提供的解决方案对我来说没有用.)我已经尝试了几个方面并且在这个问题上取得了一些进展,但它并没有完全修复.

这是我设置播放文件的方式:

mPlayer.reset();
try {
    AssetFileDescriptor afd = getResources().openRawResourceFd(mAudioId);
    if (afd == null) {
        Toast.makeText(mOwner, "Could not load sound.",
                Toast.LENGTH_LONG).show();
        return;
    }
    mPlayer.setDataSource(afd.getFileDescriptor(),
            afd.getStartOffset(), afd.getLength());
    afd.close();
    mPlayer.prepare();
} catch (Exception e) {
    Log.d(LOG_TAG, "Could not load sound.", e);
    Toast.makeText(mOwner, "Could not load sound.", Toast.LENGTH_LONG)
            .show();
}
Run Code Online (Sandbox Code Playgroud)

如果我退出活动(调用mPlayer.release())并返回它(创建一个新的MediaPlayer),口吃通常(但不总是)消失 - 只要我加载相同的声音文件.我尝试了几件没有任何区别的事情:

  • 将声音文件作为资源而不是资源加载.
  • 使用创建的MediaPlayer MediaPlayer.create(getContext(), mAudioId),并跳到调用setDataSource(...)prepare().

然后我注意到LogCat总是在播放开始时显示这一行:

DEBUG/AudioSink(37): bufferCount (4) is too small and increased to 12
Run Code Online (Sandbox Code Playgroud)

它让我想知道口吃是否是由于明显的重新缓解.这导致我尝试别的东西:

  • 通话后prepare(),拨打电话mPlayer.start()并立即拨打电话 …

audio android playback android-mediaplayer

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

如何从akka演员那里获得消息队列的大小?

应用程序中有Akka(Java API)actor(UntypeActor)和消息.根据API合同,如果将一些消息发送给同一个actor,它们将被逐行排队并进行处理.

我想根据队列大小处理actor中的消息.基本上:在Actor.onReceive()中处理当前的消息时,是否至少还有一个消息排队?什么是Akka存档方式?

java akka

18
推荐指数
1
解决办法
9404
查看次数

几个很大或很小的dll

我们正在讨论如何设计我们的应用程序.

使一些相对较大或使用很多专用的dll.

有时我们在不同的产品中使用我们的dll.

在.net环境下使用它的常见做法是什么.

加载时间真的如此不同吗?

.net

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

如何在不检索外部对象实例的情况下保存 ForeignKey?

我有一个模型,我想在其中保存一个新实例(行)。我有 ForeignKey 的主键,但我没有对象本身(假设它来自某个地方)。有没有办法在没有原始 SQL 的情况下保存它,而不必获取实例?

这是模型:

class UserLocale(models.Model):

    user = models.ForeignKey(KingUser)
    locale = models.ForeignKey(Locale)
Run Code Online (Sandbox Code Playgroud)

现在假设我有语言环境主键 ('en_US') 但我没有对象本身。我正在做的是保存它是这样的:

def save_locale(user_instance, locale_name):
    locale = Locale.objects.get(pk=locale_name)
    UserLocale.objects.create(user=user_instance, locale=locale)
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用原始 SQL 一步完成,但我想知道是否可以在 Django 查询模型中完成。

编辑:

是的,UserLocale 是一个 M2M 中间表。我知道创建一个多对多字段会更好,但它是遗留代码。

这是我的 SQL 尝试(没有测试,我正在手工编写,因为我远离代码):

def save_raw_sql(user_instance, locale_name):

    query = """
            INSERT INTO 
                project_userlocale (user_id, locale_id)
            values (%s, %s)
            """

     UserLocale.objects.raw(query, [user_instance.id, locale_name])
Run Code Online (Sandbox Code Playgroud)

python django django-models

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