如果不是从现有的系统升级,想要创建全新的项目可以从“空Code First模型开始”。“空CodeFirst模型”要先创建类,Visual Studio会从项目第一次执行的时候根据连接自动创建需要的数据库结构。本文将简单示例说明如何使用“空CodeFirst模型”。
新建控制台应用程序,名叫CodeFirstE,如下图所示 :
右键点击项目,选择“添加”,然后是“新建项”,如下图所示:
在弹出的界面中选择“ADO.NET”实体数据模型,并取名为“KTStoreModel”,如下图所示:
单击“添加”后,选择“空Code First模型”,如下图所示:
点击“完成”后,由于是空的模型,因此除了构造函数中的连接信息外没有其他的内容,切换到“App.config”,可以看到默认创建的连接字符串:
修改连接字符串为本地指定地址,如下图所示:
<connectionStrings>
<add name="KTStoreModel" connectionString="data source=127.0.0.1;initial catalog=KTStore;persist security info=True;user id=sa;password=123;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
</connectionStrings>
在项目中新建Product.cs文件,代码如下图所示:
namespace CodeFirstE
{public class Product{public int Id { get; set; }public string Name { get; set; }public string Category { get; set; }public int Price { get; set; }}
}
在自动的KTStoreModel.cs文件中增阿基如下代码:
public virtual DbSet<Product> Product { get; set; }
由于空的CodeFirst项目在第一次运行时会自动生成数据库和表结构,必须确保第一次运行时数据库中没有响应的数据库和表结构,不然会报错。在Program.cs中增加如下代码:
class Program{static void Main(string[] args){KTStoreModel model = new KTStoreModel();string sql = model.Product.ToString();Console.WriteLine("商品项目数:{0}", model.Product.Count());foreach (Product p in model.Product){int id = p.Id;string category = p.Category;int price = p.Price;string name = p.Name;Console.WriteLine("{0}\t{1}\t{2}\t{3}", id, category, price, name);}Console.ReadKey();}}
运行程序,EF框架会在Sqlserver中会自动生KTStore数据库,并生成Product表,如下图所示:
由于表中没有数据,所以无法展示任何结果。将展示数据复制到表中,再次运行如下图所示: