我用的是Microsoft Visual Studio Express 2012 for Web,免费么。
新建一个MVC4项目
确定
默认选项,确定
在Models目录中添加两个模型类Citry和ContactAddress
两个类的定义见下面,我加了一些标记(需要using System.ComponentModel),这样在用向导自动生成的视图中可以显示自定义的名称(DisplayName)。
using System;
using System.Collections.Generic;
using System.ComponentModel;
namespace Contact.Models
{
public class City
{
public int Id { get; set; }
[DisplayName("城市")]
public string Name { get; set; }
[DisplayName("联系人")]
public virtual ICollection<ContactAdress> Contacts { get; set; }
}
}
using System;
using System.ComponentModel;
namespace Contact.Models
{
public class ContactAdress
{
public int Id { get; set; }
[DisplayName("联系人")]
public string Name { get; set; }
[DisplayName("地址")]
public string Adress { get; set; }
[DisplayName("所在城市")]
public virtual City City { get; set; }
}
}
在项目根目录添加一个新目录DataAccess,放我们的数据库上下文ContactContext,这个类也是用向导添加修改而来,主要是修改以从DbContext继承(需要using System.Data.Entity),并添加实体类型,其他不用改,都使用默认配置。
using Contact.Models;
using System.Data.Entity;
namespace Contact.DataAccess
{
public class ContactContext : DbContext
{
public DbSet<City> Citys { get; set; }
public DbSet<ContactAdress> Contacts { get; set; }
}
}
下面是添加数据库连接字符串,我发现向导默认生成的Web.config中已经有一个数据库连接字符串:
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-Contact-20130223130627;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-Contact-20130223130627.mdf" providerName="System.Data.SqlClient" />
</connectionStrings>
我们就用它了,因为只是做个例子,就用LocalDB试试吧。这时可以修改这个连接字符串的名字以和数据库上下文ContactContext一致,这样Entity Framework可以自动找到;不过为了防止还有他用,我选择修改数据库