小编vin*_*163的帖子

TPROXY 与 Docker 的兼容性

我试图了解 TPROXY 如何工作,以便为 Docker 容器构建透明代理。

经过大量研究,我设法创建一个网络命名空间,向其中注入一个 veth 接口并添加 TPROXY 规则。以下脚本适用于干净的 Ubuntu 18.04.3:

ip netns add ns0
ip link add br1 type bridge
ip link add veth0 type veth peer name veth1
ip link set veth0 master br1
ip link set veth1 netns ns0
ip addr add 192.168.3.1/24 dev br1
ip link set br1 up
ip link set veth0 up
ip netns exec ns0 ip addr add 192.168.3.2/24 dev veth1
ip netns exec ns0 ip link set veth1 up
ip netns …
Run Code Online (Sandbox Code Playgroud)

sockets iptables transparentproxy docker

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

从 EF 核心获取实体而不加载所有字段

假设我有一个这样的模型:

public class Model {
    [Key]
    public int Id { get; set; }
    public string SmallData { get; set; }
    public byte[] VeryLargeBlob { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我需要从数据库中读取一个实体并只使用 field SmallDataVeryLargeBlob而不需要。VeryLargeBlob非常大(例如,几兆字节)并且从数据库中读取它会影响性能。

我了解我可以通过这种方式选择一些字段:

var data = context.Model.Where(m => m.Id == Id).Select(m => new { Id = m.Id, SmallData = m.SmallData }).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

但是我需要一个Model实例而不是匿名对象,以便我可以将它用于以后的查询。即使我破解它并使其返回一个Model对象,该实例也不会被跟踪并且与延迟加载不兼容。

有没有办法只从模型加载部分数据?

c# entity-framework-core

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