gpt4 book ai didi

c# - EF 代码首先附加并创建代理

转载 作者:太空狗 更新时间:2023-10-30 00:57:06 24 4
gpt4 key购买 nike

假设我有一个实体 Foo。

public class Foo
{
public int Id {get;set;}
public virtual ICollection<Bar> Bars {get;set;}
}

当我从数据库中获取这个实体时,我实际上得到了一个代理,并且一切正常。

但是,我能否将 Foo 附加到 DbContext 并手动创建代理,这样 Bars 就不会在附加后返回 null,而是返回一个实际的 bar 集合?

意义

var foo = new Foo { Id = 1 };
Context.Set<Foo>().Attach(foo);
foo = CreateProxyOf(foo);
var countOfBars = foo.Bars.Count();

有CreateProxyOf之类的东西吗?

最佳答案

是的,有一种方法,但您必须使用以下方法代替 Foo 的构造函数:

var set = Context.Set<Foo>();
var foo = set.Create();
foo.Id = 1;
set.Attach(foo);
var countOfBars = foo.Bars.Count();

关于c# - EF 代码首先附加并创建代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6029981/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com