Migrations.cs未成功创建

本文关键字:创建 未成功 cs Migrations | 更新日期: 2023-09-27 18:18:41

我正在使用webmatrix创建名为"sms"的果园cms新模块。我成功地创建了它,但是当我生成"migration .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;
        }
    }
}

"migrations.cs"没有成功生成,为什么??请帮助

Migrations.cs未成功创建

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

数据迁移代码生成需要遵循几个约定,以使其正常工作。例如:

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

在您的示例中,名称空间(应该以.Models结尾)和ID的大小写错误(应该是Id)是罪魁祸首。