Doa*_*ong 5 c# ef-code-first entity-framework-6
我有 2 个表:A 和 B 具有一对多关系,这些表在 EF 6 中实现如下:
public class A
{
[Key]
public int AID {get;set;}
public string AName {get;set;}
}
public class B
{
[Key]
public int BID {get;set;}
public string BName {get;set;}
public int AID {get;set;}
[ForeignKey("AID")]
public A InstanceOfClassA {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
问题
当我从上下文中检索时B,InstanceOfClassA始终为空。
假设
B由于实体中没有引用导航属性,因此实体框架在检索时A不会延迟加载。AB
期待
因为我不需要B从访问A,因此我想摆脱 中的导航属性,但仍然保留从 中A延迟加载的能力。AB
笔记
我看到了没有导航属性的映射多对多关系的帖子,但这不适合我的情况。
无论如何,我可以在不使用显式 include 的情况A下强制延迟加载吗?也许是习惯惯例Bvar b = context.B.Include(x => x.InstanceOfClassA);
编辑1
我尝试使用如下约定,但仍然没有运气:
modelbuilder.Entity<B>()
.HasRequired<A>(x => x.InstanceOfClassA);
Run Code Online (Sandbox Code Playgroud)
要使延迟加载工作,您必须使用virtual关键字标记导航属性:
[ForeignKey("AID")]
public virtual A InstanceOfClassA {get;set;}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3369 次 |
| 最近记录: |