Demo项目地址:https://download.youkuaiyun.com/download
添加实体模型
在Abp的Core项目[领域层]中添加实体

namespace ABPTest.MainConference
{
public class MainConference:Entity<Guid>
{
[Description("主会议名")]
public string Name { get; set; }
[Description("创建时间")]
public string CreateDate { get; set; }
[Description("备注")]
public string ReMark { get; set; }
}
}
namespace ABPTest.SubConference
{
public class SubConference:Entity<Guid>
{
[Key] //这里设置主键后,继承Entity的Id不会被设置为主键
[Description("子会议ID")]
public int SubConferenceId { get; set; }
[Description("子会议名")]
public string Name { get; set; }
[Description("创建时间")]
public DateTime CreateDate { get; set; }
[Description("创建人")]
public string CreateUser { get; set; }
[Description("备注")]
public string ReMark { get; set; }
}
}
//下面这个类是后面新加的,作为对比参考
namespace ABPTest.EntityModel
{
[Table("Common_Participant")] //指定数据库生成表名,不指定默认表名= 类名+s
public class Participant:FullAuditedEntity<int> /*继承该类型,默认生成审计字段:
创建时间、创建人.....*/
{
public string Name { get; set; }
public int Age { get; set; }
public int Sex { get; set; }
}
}
实体模型继承Entity基类,定义主键类型,这里代码继承了Entity< Guid> 意思是会默认在数据库表中加上Guid类型的主键Id。如果在实体中定义了特性[key]那么Id字段生成后不会被设置为主键
实体定义完成后,在Context上下文中添加实体

数据迁移:针对实体模式修改同步数据库
打开控制台程序,默认项目为netframework
执行命令:add-migration [自己命名]
例:PM> add-migration addtable[conference]
接着执行命令:update-database,等待数据同步完成,查看数据库

修改实体模型,数据迁移
修改上面的MainConference.cs和SubConference.cs
namespace ABPTest.MainConference
{
public class MainConference:Entity<Guid>
{
[Description("主会议名")]
public string Name { get; set; }
[Description("创建时间")]
public string CreateDate { get; set; }
[Description("会议地址")]
public string Address { get; set; }
[Description("会议状态")]
public int Status { get; set; }
[Description("备注")]
public string ReMark { get; set; }
}
}
namespace ABPTest.SubConference
{
public class SubConference:Entity<Guid>
{
[Key] //这里设置主键后,继承Entity的Id不会被设置为主键
[Description("子会议ID")]
public int SubConferenceId { get; set; }
[Description("主会议Id")]
public Guid MainConferenceId { get; set; }
[Description("会议开始时间")]
public DateTime StratDate { get; set; }
[Description("会议状态")]
public int Status { get; set; }
[Description("子会议名")]
public string Name { get; set; }
[Description("创建时间")]
public DateTime CreateDate { get; set; }
[Description("创建人")]
public string CreateUser { get; set; }
[Description("备注")]
public string ReMark { get; set; }
}
}
修改完成后打开控制台,分别执行
- add-migration 自定义名称
- update-database

第一步自定义的名称会在迁移日志中生成对应的cs文件,打开可以看到UP中更新的内容以及Down中降级的内容,updata-database就是执行up内容

如果执行updata-database 提示
ObjetNotFound:CommandNotFoundException错误,请再次执行add-migration,这时会提示已存在同样的修改文件,没事,继续执行 update-database,等待同步完成

到这里新增,修改实体,数据迁移就结束了!
4820



被折叠的 条评论
为什么被折叠?



