之前一直在按照书中的步骤使用,感觉上还不是很清晰,今天总结了一下使用方法:
第一步:新建一个控制台项目:
创建实体类Product
class Product
{
public int ProductID { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string Category { get; set; }
public decimal Price { get; set; }
}
创建接口
interface IProduct
{
IQueryable<Product> Products { get; }
}
第二步:创建EntityFramework映射到数据库的类
class EFDbContext:DbContext
{
public DbSet<Product> Products { get; set; }
}
DbContext引用在System.Data.EntityFramwork中,我用的VS2010版本没有默认安装EntityFramwork
需要在 视图——其他窗口——Package Manager Console 窗口中 输入以下命令:
Installl -Package EntityFramwork
然后VS会自动联网下载EntityFramework并安装到项目中,我当前使用的版本是 EntityFramework 4.3.1
安装成功以后发现DbContext类已经正常引用。
第三步:实现IProduct接口
class EFRepository:IProduct
{
private EFDbContext context = new EFDbContext();
#region IProduct 成员
public IQueryable<Product> Products
{
get { return context.Products; }
}
#endregion
}
第四步:通过配置文件 指定要连接的数据库文件
打开App.config 文件,添加以下代码:
<connectionStrings>
<add name="EFDbContext" connectionString="Data Source=I:\程序员的修炼之道\BrooklynWorkShop\personal\SportStore.sdf;Password=1;Persist Security Info=False;" providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>
至此,所有准备工作就绪
测试:在Program.cs文件中编写测试代码:
class Program
{
static void Main(string[] args)
{
EFRepository repository = new EFRepository();
IEnumerable<Product> products = repository.Products.AsEnumerable();
foreach (Product p in products)
{
Console.WriteLine(p.Name);
}
Console.Read();
}
}
F5运行,
控制台输出:
成功!