在Code First中,编写完代码并运行之后,我们的Model会同步到Db中,但是往往我们 需要的是编写完Model就生成数据库,而不是等UI部分完成并运行之后才看到数据库,借助NuGet程序包管理器 可以让我们即时完成Code=>DB。
准备:1.本人开发工具为VS2012,使用的是.NET Framework 4.5 (EF5);
2.然后确保已在VS扩展中安装了最新的“NuGet程序包管理器”;
3.常用的三行 NuGet用于EF命令(当然可以直接用命令“get-help EntityFramework”获取):“Enable-Migrations” --在对应项目中启用、“Add-Migration <名称>” --搭建基架、“Update-Database” --提交(应用基于代码的迁移)
4.新建类库项目“CodeFirst”。
开始:
1. 在vs打开“程序包管理控制台”,输入“get-help NuGet”回车,可以查看一些命令。
2. 在程序包管理控制台输入“Install-Package EntityFramework”,此过程必须保证机子联网,如未联 网,本人有个法子,就是在项目中新建Entity Framework(如“ADO.NET实体数据模型”)项,然后再删除该 项即可。上述命令执行前确保如下图所示说明
此时可以看到项目多了个文件“packages.config”,同样在引用下多了“EntityFramework”的程序 集。而在解决方案目录下则多了文件夹“packages”(物理目录,非解决方案目录),假如我们要拷贝项目, 则应连同该目录拷贝,否则到别的目录下再编译项目之前仍然重新需要执行“Install-Package EntityFramework”,这是在将解决方案添加到源码管理时需要注意的地方。
3.项目下添加项目文件夹 “Models”,并在该文件夹编写以下三个类与一个枚举(EF5对枚举的支持是非常棒的):
/// <summary> /// 性别 /// </summary> public enum Gender { Female = 0, Male, LadyBoy }
/// <summary> /// 人名 /// </summary> public class PersonName { public string FirstName { get; set; } public string LastName { get; set; } public string FullName { get { return string.Format("{0} {1}", FirstName, LastName); } } }
public abstract class BaseModel { public BaseModel() { this.CreatedTime = DateTime.Now; this.LastUpdatedTime = DateTime.Now; } public DateTime CreatedTime { get; set; } public string Creater { get; set; } public DateTime LastUpdatedTime { get; set; } public string LastUpdater { get; set; } }
[Table("UserInfo")] public class UserModel : BaseModel { [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] public string LoginName { get; set; } [MaxLength(50)] public string Password { get; set; } public int Age { get; set; } public Gender Gender { get; set; } public DateTime? LastLoginTime { get; set; } public PersonName Name { get; set; } }
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索entityframework
, string
, vs code
, set
, 项目
, get
, public
, model first
, code first
, code first实体类
, EF5
, code first
nuget
framework bitcode、framework codesign、code first、ef code first、codefirst 创建数据库,以便于您获取更多的相关知识。