首先,我个人觉得这(model first 即模型优先)是一个鸡肋似的功能。当赞扬着他的强大的功能的同时,你也会觉得这个功能好像是不是不怎么需要,也很少使用。
1.右键你的项目,选择“添加”》“新建项” ,在弹出的对话框中选择“数据”,“ADO.NET实体数据模型”,点击“添加”。如图3-1
如3-1
2.选择“空EF设计器模型”,点击“完成”。如图3-2
图3-2
3.在“设计器”中右键,选择“新增实体”,添加实体名称等数据项,点击确定。如图3-3
图3-3
4,.在“Student”实体的属性上右键,依次点击“新增”》“标量属性”,修改属性名为“Name”,右键“Name”,点击“属性”可弹出属性框,设置相应属性值。据此方法,依次添加“Age”,“Detail”字段。如图3-4
图3-4
5.实体设计完成后,右键设计器空白处,选择"根据模型生成数据库"。在弹出的对话框中,可以选择“新建连接”也可以选择一个已经生成的连接,然后点击下一步。如图3-5
图3-5
6.到此会生成一个.sql的文件,打开文件,右键空白处,点击“执行”。如图3-6.(如果无法执行,可复制sql内容,在数据库中直接执行)如图3-6
图3-6
7.成型成功后,数据库中的表就已经生成了。下面演示的是新增数据到数据库中,其实和其他的方式一样。
using (Model1Container1 db = new Model1Container1())
{
for (int i = ; i < ; i++)
{
Student s1 = new Student();
s1.Name = "studnet" + i;
s1.Age = i;
s1.Detail = "detail" + i; db.Students.Add(s1);
} int count = db.SaveChanges(); Console.WriteLine("成功插入 {0} 条数据!",); Console.WriteLine("name \t\t age"); foreach (var item in db.Students)
{
Console.WriteLine("{0} \t {1}", item.Name, item.Age);
}
}
输出:
图3-7
8.其实“model first”的功能之强大元不止这些,比如“表关系”、“导航属性”、“属性限制”等等,都是可以通过它来完成的。不过“model first”使用的人貌似不多,可能正是因为这样的原因。在ef7中,已经把这个功能移除了。