为了账号安全,请及时绑定邮箱和手机立即绑定

在基于 Orchard CMS 的 Web 应用程序中添加新表/实体时

在基于 Orchard CMS 的 Web 应用程序中添加新表/实体时

C#
HUX布斯 2021-11-21 15:37:23
我通过 Migrations.cs 文件创建了一个新表:        // New table  - StaffAddress        SchemaBuilder.CreateTable("StaffAddress",           tb => tb               .Column<int>("StaffAddressId", p => p.PrimaryKey().Identity())               .Column<bool>("UseForFutureItems", p => p.NotNull())               .Column<int>("AddressId", p => p.Nullable())               .Column<int>("StaffId", p => p.Nullable())           );        // foreign key relations        SchemaBuilder.CreateForeignKey("Fk_StaffAddress_Address", "StaffAddress",            new string[] { "AddressId" }, "Address", new string[] { "AddressId" });        SchemaBuilder.CreateForeignKey("Fk_StaffAddress_Staff", "StaffAddress",            new string[] { "StaffId" }, "Staff", new string[] { "OrchardUserID" });我在 PersistenceConfigurations.cs 中添加了相同的映射,如下所示:        config.Mappings(x => x.AutoMappings.Add(AutoMap.Source(CreateTypeSource<entity.StaffAddress>())        .Override<entity.StaffAddress>(map =>        {            map.Table("StaffAddress");            map.Id(m => m.StaffAddressId, "StaffAddressId");            map.References(y => y.Staff, "StaffId");            map.References(z => z.Address, "AddressId");        })));迁移成功并创建表,网站已启动但无法保存地址。我的理解是 mappings.bin 没有得到更新,或者 Orchard CMS/Nhibernate 框架中的一些持久化集合没有得到更新。有什么办法可以解决这个问题?注意:我无法删除 mappings.bin,因为该应用程序是自动更新的。
查看完整描述

1 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

我猜你的映射没有得到更新,因为哈希没有得到更新。因此,在 PersistenceConfigurations.cs 中检查您是否已更新 ComputingHash() 方法中的哈希值。如果没有,请更新哈希值,您的问题将得到解决。


查看完整回答
反对 回复 2021-11-21
  • 1 回答
  • 0 关注
  • 184 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信