- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
目前我正在使用 Fluent NHibernate 生成我的数据库架构,但我希望 HasMany 关系中的实体指向不同的列以供引用。 IE,这是 NHibernate 将在创建 DDL 中生成的内容:
alter table `Pony` add index (Stable_ID),
add constraint Ponies_Stable foreign key (Stable_Id)
references `Stable` (Id);
这是我想要的:
alter table `Pony` add index (Stable_ID),
add constraint Ponies_Stable foreign key (Stable_Id)
references `Stable` (EntityId);
其中 Stable.ID 是主键,而 Stable.EntityId 只是我设置的另一列。
我已经有一个看起来像这样的类了:
public class ForeignKeyReferenceConvention : IHasManyConvention
{
public void Apply(IOneToManyCollectionInstance instance)
{
instance.Cascade.All();
//What goes here so that I can change the reference column?
}
}
举个例子,这里是 IReferenceConvention 的代码看起来像做同样的事情:
public class MyReferenceConvention : IReferenceConvention
{
public void Apply(IManyToOneInstance instance)
{
instance.PropertyRef("EntityId");
instance.Cascade.All();
}
}
编辑:instance.Key.Column("EntityId")
不是解决方案。
最佳答案
Note: this is only available in the builds after #632 from the Fluent NHibernate downloads
IOneToManyInstance
上有一个名为Key
的属性,可让您修改关系中使用的键;在该属性上,有一个 PropertyRef
方法,这应该是您要查找的内容。
public class ForeignKeyReferenceConvention : IHasManyConvention
{
public void Apply(IOneToManyCollectionInstance instance)
{
instance.Key.PropertyRef("EntityId");
}
}
关于c# - 如何使用 IHasManyConvention Fluent NHibernate 约定在 HasMany 映射上设置 PropertyRef?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2344475/
在我的一个对话框中,我有以下控制: 我在其他地方填充 ComboBox,如下所示: 但是,如果我没有创建 ComboBox 位,MSI 仍将构
我是 GWT 的新手,我需要您的专业建议。 我的问题是如何将 RequestFactory: .with(propertyRefs) 用于某种“树”结构当这些 propertyRefs 本身包含我想要
我正在为我的 References 属性之一使用 PropertyRef。使用 LazyLoad() 它仍然执行 Select 并加载 User 实体,即使我从未“点击”SalesPerson 属性。
如果我在引用(多对一)上指定 PropertyRef - 它会急切地获取所有相关记录: References(x => x.Panel).PropertyRef(x => x.Code).Not.In
目前我正在使用 Fluent NHibernate 生成我的数据库架构,但我希望 HasMany 关系中的实体指向不同的列以供引用。 IE,这是 NHibernate 将在创建 DDL 中生成的内容:
我是一名优秀的程序员,十分优秀!