asp.net MVC_EF_DB
2015-12-21 20:04
627 查看
1、创建数据库项目,设置属性(选择用哪个版本的数据库、连接字符串等),然后创建sql脚本用于创建表和
添加测试数据,生成、执行,查看数据库对象资源管理器验证数据已经生成成功。
2、新建主要的MVC项目设为启动项目,并在Models文件夹中新建项
data-->ADO.NET Entit Data Model-->EF Designer from database 然后新建数据库连接(因为是要根据
数据库生成模型),选择表,完成。然后生成项目,便于下一步创建视图。
3、在Controllers文件夹中创建 带有视图的MVC 5控制器,选择模型类和数据库连接类,添加完成。之后也
可以再根据别的模型类创建视图,然后可以在 Views/Home/Index.cshtml 中添加
@Html.ActionLink("List of students", "Index", "Students") 按 ctrl+f5 来测试一下。
4、如果要更改表结构,添加新的列,那么要在添加之后重新生成数据库项目,然后打开查看验证新列是否
添加成功。然后打开 Models 文件夹下的 edmx 模型文件,右击视图界面的任何地方选择 从数据库更新模型,
然后选择要更新的表,点击完成查看模型的变化,如果是删除列,那么要手动更改模型结构。然后将与更改
过的模型类相关的控制器类和对应的视图删掉重新建立。最后 ctrl+f5 来测试一下。
5、也可以自己定义要显示的视图,比如在Students/Details.cshtml下更改要显示的内容。
6、为文本框等控件添加约束规则。方法一,在模型类中添加 using System.ComponentModel.DataAnnotations;
引用,然后在各个属性上面一行添加约束的特性,比如 [StringLength(50)] 限制文本框字符数。这种方法添加
之后便不允许更改,如果数据库等变化,重新生成模型类,那么该类的这些特性将会丢失,所以该方法不提倡。
方法二,添加一个包含属性的元数据类,这些特性作用于模型类。在模型文件夹中添加 Metadata.cs
代码如下:
using System;
using System.ComponentModel.DataAnnotations;
namespace ContosoSite.Models
{
public class StudentMetadata
{
[StringLength(50)]
[Display(Name="Last Name")]
public string LastName;
[StringLength(50)]
[Display(Name="First Name")]
public string FirstName;
[StringLength(50)]
[Display(Name="Middle Name")]
public string MiddleName;
[Display(Name = "Enrollment Date")]
public Nullable<System.DateTime> EnrollmentDate;
}
public class EnrollmentMetadata
{
[Range(0, 4)]
public Nullable<decimal> Grade;
}
}然后要添加用于 元数据与模型关联的类
在模型文件夹中添加 PartialClasses.cs
代码如下:
using System;
using System.ComponentModel.DataAnnotations;
namespace ContosoSite.Models
{
[MetadataType(typeof(StudentMetadata))]
public partial class Student
{
}
[MetadataType(typeof(EnrollmentMetadata))]
public partial class Enrollment
{
}
}最后就可以运行测试了,与方法一效果相同。
7、将应用发布到 Azure ,这个并不支持国内用户注册(与国家政策有关),与之合作的世纪互联并
不免费,可以看看步骤。
添加测试数据,生成、执行,查看数据库对象资源管理器验证数据已经生成成功。
2、新建主要的MVC项目设为启动项目,并在Models文件夹中新建项
data-->ADO.NET Entit Data Model-->EF Designer from database 然后新建数据库连接(因为是要根据
数据库生成模型),选择表,完成。然后生成项目,便于下一步创建视图。
3、在Controllers文件夹中创建 带有视图的MVC 5控制器,选择模型类和数据库连接类,添加完成。之后也
可以再根据别的模型类创建视图,然后可以在 Views/Home/Index.cshtml 中添加
@Html.ActionLink("List of students", "Index", "Students") 按 ctrl+f5 来测试一下。
4、如果要更改表结构,添加新的列,那么要在添加之后重新生成数据库项目,然后打开查看验证新列是否
添加成功。然后打开 Models 文件夹下的 edmx 模型文件,右击视图界面的任何地方选择 从数据库更新模型,
然后选择要更新的表,点击完成查看模型的变化,如果是删除列,那么要手动更改模型结构。然后将与更改
过的模型类相关的控制器类和对应的视图删掉重新建立。最后 ctrl+f5 来测试一下。
5、也可以自己定义要显示的视图,比如在Students/Details.cshtml下更改要显示的内容。
6、为文本框等控件添加约束规则。方法一,在模型类中添加 using System.ComponentModel.DataAnnotations;
引用,然后在各个属性上面一行添加约束的特性,比如 [StringLength(50)] 限制文本框字符数。这种方法添加
之后便不允许更改,如果数据库等变化,重新生成模型类,那么该类的这些特性将会丢失,所以该方法不提倡。
方法二,添加一个包含属性的元数据类,这些特性作用于模型类。在模型文件夹中添加 Metadata.cs
代码如下:
using System;
using System.ComponentModel.DataAnnotations;
namespace ContosoSite.Models
{
public class StudentMetadata
{
[StringLength(50)]
[Display(Name="Last Name")]
public string LastName;
[StringLength(50)]
[Display(Name="First Name")]
public string FirstName;
[StringLength(50)]
[Display(Name="Middle Name")]
public string MiddleName;
[Display(Name = "Enrollment Date")]
public Nullable<System.DateTime> EnrollmentDate;
}
public class EnrollmentMetadata
{
[Range(0, 4)]
public Nullable<decimal> Grade;
}
}然后要添加用于 元数据与模型关联的类
在模型文件夹中添加 PartialClasses.cs
代码如下:
using System;
using System.ComponentModel.DataAnnotations;
namespace ContosoSite.Models
{
[MetadataType(typeof(StudentMetadata))]
public partial class Student
{
}
[MetadataType(typeof(EnrollmentMetadata))]
public partial class Enrollment
{
}
}最后就可以运行测试了,与方法一效果相同。
7、将应用发布到 Azure ,这个并不支持国内用户注册(与国家政策有关),与之合作的世纪互联并
不免费,可以看看步骤。
相关文章推荐
- 分享微信开发Html5轻游戏中的几个坑
- c#调用COM组件
- 星外ASP.Net的安全设置相关说明
- C#实现把指定数据写入串口
- C#动态创建button的方法
- C#中抽象方法与虚拟方法的区别
- c#中虚函数的相关使用方法
- C#使用加边法计算行列式的值
- C#实现多线程的同步方法实例分析
- C#中尾递归的使用、优化及编译器优化
- C#实现子窗体与父窗体通信方法实例总结
- C#通用邮件发送类分享
- C#中this的用法集锦
- C#数据结构之顺序表(SeqList)实例详解
- C#.NET获取拨号连接的宽带连接方法
- C#异步绑定数据实现方法
- C#实现AddRange为数组添加多个元素的方法
- C#中Equality和Identity浅析
- C#比较二个数组并找出相同或不同元素的方法
- JavaWeb程序架构模式的演进