Fluent nhibernate 映射多个表
Fluent nhibernate map multiple tables
我有一个映射的 UserEntity 并得到了
不能同时取多个包。错误
public UserEntityMap : ClassMap<UserEntity>
{
//Other properties
HasMany(x => x.Addresses).KeyColumn("User_id").Fetch.Join();
HasMany(x => x.Roles).KeyColumn("User_id").Fetch.Join();
}
我想在创建用户实体查询时同时获取地址和角色。
我应该怎么做才能看到像
这样的输出
Select * from UserEntity u
join Addresses a on u.id=a.User_id
join Roles r on u.id=r.User_id where u.id=?
无法生成这样的 SELECT 语句。
我建议使用批量抓取。有关详细信息,请参阅以下内容:
- How to Eager Load Associations without duplication in NHibernate?
- How to implement batch fetching with Fluent NHibernate when working with Oracle?
调整后的映射:
public UserEntityMap : ClassMap<UserEntity>
{
//Other properties
HasMany(x => x.Addresses)
.KeyColumn("User_id").Fetch.Join()
.BatchSize(100);
HasMany(x => x.Roles)
.KeyColumn("User_id").Fetch.Join()
.BatchSize(100);
}
这将允许查询根实体并且只需 SELECTS 也可以获得他们的集合(没有 1 + N 问题)
同时勾选
我有一个映射的 UserEntity 并得到了 不能同时取多个包。错误
public UserEntityMap : ClassMap<UserEntity>
{
//Other properties
HasMany(x => x.Addresses).KeyColumn("User_id").Fetch.Join();
HasMany(x => x.Roles).KeyColumn("User_id").Fetch.Join();
}
我想在创建用户实体查询时同时获取地址和角色。 我应该怎么做才能看到像
这样的输出Select * from UserEntity u
join Addresses a on u.id=a.User_id
join Roles r on u.id=r.User_id where u.id=?
无法生成这样的 SELECT 语句。
我建议使用批量抓取。有关详细信息,请参阅以下内容:
- How to Eager Load Associations without duplication in NHibernate?
- How to implement batch fetching with Fluent NHibernate when working with Oracle?
调整后的映射:
public UserEntityMap : ClassMap<UserEntity>
{
//Other properties
HasMany(x => x.Addresses)
.KeyColumn("User_id").Fetch.Join()
.BatchSize(100);
HasMany(x => x.Roles)
.KeyColumn("User_id").Fetch.Join()
.BatchSize(100);
}
这将允许查询根实体并且只需 SELECTS 也可以获得他们的集合(没有 1 + N 问题)
同时勾选