Ale*_*yev 8 c# entity-framework navigation-properties entity-framework-6
我有下一个想法:
public class MyEntity
{
public virtual int Id { get; set; }
public virtual MySecondEntity SecondEntity { get; set; }
}
public class MySecondEntity
{
public virtual int Id { get; set; }
...
some properties here
...
}
Run Code Online (Sandbox Code Playgroud)
我不想创建MySecondEntityID属性以获得干净的模型.
我需要通过Id设置myEntity.MySecondEntity,但我不想从DB请求MySecondEntity.
是否可以在不创建MyEntity.MySecondEntityID属性且不加载整个MySecondEntity对象甚至没有任何db请求的情况下执行此操作?
小智 8
可以MySecondEntity手动创建对象,并将其作为未更改的对象附加到上下文.
var secondEntity = new MySecondEntity();
secondEntity.Id = id;
context.MySecondEntities.Attach(secondEntity);
entity.SecondEntity = secondEntity;
Run Code Online (Sandbox Code Playgroud)
为了简单起见,我忽略了MySecondEntity在上下文中已经存在具有相同键的对象的可能性.要使其工作,您应该检查本地实体(例如通过搜索context.MySecondEntities.Local)并重新使用实体(如果您在那里找到它).
注意:EF无法知道其他属性(secondEntity保留默认值)与数据库中的属性不对应.对于你现在正在做的事情,这无所谓,但它可能会在稍后阶段发生.
| 归档时间: |
|
| 查看次数: |
4164 次 |
| 最近记录: |