相关疑难解决方法(0)

linq-to-sql或linq在什么时候向数据库发送请求

我想让我的查询更好,但是无法找到一个资源,当查询被发送到数据库时.

DBContext db = new DBContext();
Order _order = (from o in db
                where o.OrderID == "qwerty-asdf-xcvb"
                select o).FirstOrDefault();
String _custName = _order.Customer.Name +" "+_order.Customer.Surname;
Run Code Online (Sandbox Code Playgroud)

_custName的赋值是否需要向数据库发出任何请求?

c# linq asp.net linq-to-sql

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

在 Spring 数据的 RepositoryRestResource 中急切地加载 MongoDB @DBRef

我正在尝试使用RepositoryRestResource和实现一个rest apiRestTemplate

除了加载@DBRef 之外,一切都运行良好

考虑这个数据模型:

public class Order
{
   @Id
   String id;

   @DBRef
   Customer customer;

   ... other stuff
}

public class Customer
{
    @Id
    String id;

    String name;

    ...
}
Run Code Online (Sandbox Code Playgroud)

以及以下存储库(客户的类似存储库)

@RepositoryRestResource(excerptProjection = OrderSummary.class)
public interface OrderRestRepository extends MongoRepositor<Order,String>{}
Run Code Online (Sandbox Code Playgroud)

其余 api 返回以下 JSON:

{
  "id" : 4,
  **other stuff**,
  "_links" : {
    "self" : {
      "href" : "http://localhost:12345/api/orders/4"
    },
    "customer" : {
      "href" : "http://localhost:12345/api/orders/4/customer"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

如果由 resttemplate 正确加载,将创建一个新的 Order 实例,其中 customer = null

是否可以在存储库端急切地解决客户并嵌入 …

mongodb spring-data-rest spring-data-mongodb spring-boot

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

PHP循环记录非常慢

我正在使用PDO.所以我有一个声明,准备一个查询来选择一堆记录.例:

   //select duplicates
   $stmt = $this->db->prepare('SELECT Name COUNT( * ) AS CNT
            FROM  `Test`
            GROUP BY Name
            HAVING CNT > 1');

   $stmt2 = $this->db->prepare('SELECT * FROM Test2 WHERE TName = ?');
Run Code Online (Sandbox Code Playgroud)

请注意,我确实需要选择所有数据,而不是某些列.该表包含5k记录,有时甚至更多.我需要选择所有5k记录,对于每个记录,我需要执行另一个查询来选择其他内容.

   $arr = array();
   while ($row = $stmt->fetch(DB::FETCH_ASSOC)) {
       $stmt2->execute($row['Name']);
       $arr[] = $stmt2->fetchAll(DB::FETCH_ASSOC);
   }
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用连接但是对于我的情况连接将不起作用,因为我需要遍历数据并为每个stmt1行执行stmt2.

当我运行它需要10-15分钟,我不能允许,我需要它更快.谁能告诉我这是什么问题?5k记录似乎没有多少循环.

      STMT1 returns up to 5.5k records
Run Code Online (Sandbox Code Playgroud)

我需要返回每个副本的数据:

php mysql pdo loops query-optimization

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

Too many connections with Spring + MyBatis + MySQL + JDBC

I am trying to work with spring, mybatis and mysql with jdbc. The only small problem I have after some queries, it throws an exception. The DB says: Too many connections.

So what I am trying to do to prevent the too many connection issue is to set up a connection pool. I have tried dbcp and bonecp also but both have the same behaviour. When I reload my page it just keeps loading in the browser and after some …

java spring connection-pooling jdbc mybatis

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

如何通过`through`表中的字段为Django中的M2M关系排序?

我有两个模型 — NotePinboard — 在 Django 应用程序中具有多对多关系。这两个模型通过另一个模型(Pin)相关联,因此我可以存储有关这种关系的其他信息。

我想在for Pinboard 中显示相关的Note实例。那不是问题。但我想预取笔记并在表格中的字段上订购它们。DetailViewpositionthrough

关于如何存档的任何提示(预取 + 在第三个表上排序)?

例子

这就是我到目前为止所拥有的......从某种意义上说,它是有效的,我不必查询每个条目,但我发现没有办法按它们对Note实例进行排序,position而无需对每个实例进行更多查询。

楷模

from django.db import models


class Note(models.Model):

    title = models.CharField(max_lenght=200)

    content = models.TextField()


class Pinboard(models.Model):

    title = models.CharField(max_lenght=200)

    notes = models.ManyToManyField(
        Note, blank=True, related_name='pinboards', through='Pin'
    )


class Pin(models.Model):

    class Meta:
        ordering = ['position', ]
        get_latest_by = 'position'

    pinboard = models.ForeignKey(Pinboard, related_name='note_pins')

    note = models.ForeignKey(Note, related_name='pinboard_pins')

    position = …
Run Code Online (Sandbox Code Playgroud)

python django m2m

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

GetAllWithChildren()性能问题

我在以下代码中使用SQLite-Net Extensions 从Sqlite数据库中检索1000行及其子关系:

var list =
SQLiteNetExtensions.Extensions.ReadOperations.GetAllWithChildren<DataModel>(connection);
Run Code Online (Sandbox Code Playgroud)

问题是表现很尴尬.因为GetAllWithChildren()返回List而不是Enumerable.是否存在使用Sqlite.net扩展将记录加载到Enumerable的任何方法?

我现在使用Sqlite.net中的Table()方法,将获取的行加载到Enumerable中但我不想使用它,因为它不理解关系并且根本不加载子实体.

c# sqlite xamarin sqlite-net sqlite-net-extensions

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

如何使用linq检索多个唯一ID的实例?

我在我的API中有一个post动作,它根据从视图模型中检索的一些数据创建一个订单.

它需要能够从通过视图模型传递给它的"电影"表中检索所有电影并创建订单.视图模型将操作传递给需要检索的电影的ID.

我有一个有效的解决方案,当提供这样的动作数据时,它有效:

{
     "movieIds": [34, 35],
     "customerId": 21
}
Run Code Online (Sandbox Code Playgroud)

数据库:

在此输入图像描述

但是,当我提供包含两个或多个具有相同Id的电影的动作数据时,它只会保存一部电影.

{
     "movieIds": [34, 34],
     "customerId": 21
}
Run Code Online (Sandbox Code Playgroud)

数据库:

在此输入图像描述

在调试代码之后,我发现这是导致问题的linq语句,它只会将电影的一个实例保存为"电影".

movies = _context.Movies.Where(m => newRental.MovieIds.Contains(m.Id)).ToList();
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么这样做?以及如何构造一个允许它保存多个ID的linq语句?

c# linq entity-framework asp.net-web-api

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