未成功创建Migrations.cs

时间:2014-08-18 12:17:32

标签: c# content-management-system orchardcms

我正在创建名为" sms"的新模块。在使用webmatrix的果园cms中。我成功创建它但是当我生成" migrateions.cs"时,它没有成功生成。

模型中的sms.cs类在下面给出

using System.Collections.Generic;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;
using Orchard.ContentManagement;
using Orchard.ContentManagement.Records;

namespace SMSs.Model{
public class smsrecord:ContentPartRecord
{
    public virtual int ID{get;set;}
    public virtual string Name{get;set;}
    public virtual char is_deleted{get;set;}
}
public class smspart:ContentPart<smsrecord>
{

    [Required]
    public int ID
    {
        get{return ID=Record.ID;}
        set{Record.ID=value;} 
    }
    public string Name
    {
        get{return Name=Record.Name;}
        set{Record.Name=value;}
    }
    public char is_deleted
    {
        get{return is_deleted=Record.is_deleted;}
        set{Record.is_deleted=value;}
    }
}

生成的Migrations.cs类如下

using System;


using System.Collections.Generic;
using System.Data;
using Orchard.ContentManagement.Drivers;
using Orchard.ContentManagement.MetaData;
using Orchard.ContentManagement.MetaData.Builders;
using Orchard.Core.Contents.Extensions;
using Orchard.Data.Migration;

namespace sms {
    public class Migrations : DataMigrationImpl {

        public int Create() {


            return 1;
        }
    }
}

&#34; migrations.cs&#34;没有成功生成为什么?请帮忙

1 个答案:

答案 0 :(得分:1)

类本身是正确生成的,虽然它缺少用于创建适当表的代码,因为您没有遵守记录类的命名约定。

生成数据迁移代码要求您遵循多个约定才能使其正常工作。即:

  • 记录的命名空间必须以.Models.Records
  • 结尾
  • 必须存在名为Id
  • 的公共属性
  • 所有属性都必须是虚拟的(无论如何都需要NHibernate)
  • 班级无法密封
  • 班级不能抽象
  • 类必须实现IContent或是ContentPartRecord
  • 的子类

在您的情况下,命名空间(应以.Models结尾)和ID的错误大小(应为Id)是罪魁祸首。