映射 属性 与 where 条件
Map property whith where condition
我有一个 table 用于 3 个实体:
密码、备注、信用卡。
table 有一个“EntityType”列。
例如,密码的值为“P”。
我如何制作映射,以便它只需要 EntityType = 'P'
的那些行
public PasswordEntityMap()
{
Table(Constants.EntitiesTable);
Id(x => x.Id).GeneratedBy.Increment();
Map(x => x.Site);
Map(x => x.Login);
Map(x => x.Password);
Map(x => x.EntityType); <------- where EntityType = 'P'
HasMany(x => x.Attachments)
.Cascade.All()
.Table(Constants.EntityAttachmentTable)
.KeyColumn("EntityId");
}
您可以为此使用鉴别器值。
public sealed class PasswordEntityMap : ClassMap<PasswordEntity>
{
public PasswordEntityMap()
{
Id(x => x.Id).GeneratedBy.Increment();
Map(x => x.Site);
Map(x => x.Login);
Map(x => x.Password);
Map(x => x.EntityType);
DiscriminateSubClassesOnColumn("EntityType", "P")
.AlwaysSelectWithValue();
}
}
然后,当您对 PasswordEntity 执行 QueryOver 时,只会检索带有“P”的实体。
var onlyPasswordEntities = _session.QueryOver<PasswordEntity>().List();
我有一个 table 用于 3 个实体:
密码、备注、信用卡。
table 有一个“EntityType”列。
例如,密码的值为“P”。
我如何制作映射,以便它只需要 EntityType = 'P'
public PasswordEntityMap()
{
Table(Constants.EntitiesTable);
Id(x => x.Id).GeneratedBy.Increment();
Map(x => x.Site);
Map(x => x.Login);
Map(x => x.Password);
Map(x => x.EntityType); <------- where EntityType = 'P'
HasMany(x => x.Attachments)
.Cascade.All()
.Table(Constants.EntityAttachmentTable)
.KeyColumn("EntityId");
}
您可以为此使用鉴别器值。
public sealed class PasswordEntityMap : ClassMap<PasswordEntity>
{
public PasswordEntityMap()
{
Id(x => x.Id).GeneratedBy.Increment();
Map(x => x.Site);
Map(x => x.Login);
Map(x => x.Password);
Map(x => x.EntityType);
DiscriminateSubClassesOnColumn("EntityType", "P")
.AlwaysSelectWithValue();
}
}
然后,当您对 PasswordEntity 执行 QueryOver 时,只会检索带有“P”的实体。
var onlyPasswordEntities = _session.QueryOver<PasswordEntity>().List();