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

我通过 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,因为该应用程序是自动更新的。


HUX布斯
浏览 185回答 1
1回答

慕容森

我猜你的映射没有得到更新,因为哈希没有得到更新。因此,在 PersistenceConfigurations.cs 中检查您是否已更新 ComputingHash() 方法中的哈希值。如果没有,请更新哈希值,您的问题将得到解决。
打开App,查看更多内容
随时随地看视频慕课网APP