如何在ASP中使用动态加载?. NET 4.5/EF6/MySQL实现以下结果:
我有以下MySQL表(示例):
table_1
- t1_id
- t1_name
- t2_id(颗)
table_2
- t2_id
- t2_name
table_3
- t3_id
- t1_id(颗)
- t3_name
我正在使用ASP。. NET 4.5/实体框架6/MySQL 5使用最新的。net连接器,并在Visual Studio 2013中开发。
我想知道如何使用急切加载来获得以下结果:
表3项可以有多个t1 id和对应于FK关系的T3行,以及一个匹配T3> t1 FK关系的所有行的数组。
T1 {
t1_id = 1,
t1_name = "something",
t2_id = 3,
T2 {
t2_id = 3,
t2_name = "something 2"
},
Collection {
T3 {
1: {
t3_id = 5,
t3_name = "name"
t1_id = 1
},
2: {
t3_id = 6,
t3_name = "name2",
t1_id = 1
},
}
}
我希望有一个对象,该对象包含基于我在MySQL WorkBench中为每个表创建的外键关系的相关表的关系中的所有数据。
您需要在类中使用virtual关键字定义属性。所以如果你想要一个延迟/急切加载的集合,你的类看起来像:
public class A
{
... Some properties ...
}
public class B
{
public int Id {get;set;}
public virtual IColection<A> As {get;set;}
}
如果不能更改类,也可以尝试使用include:
var b = context.B.Include("As");