使用ef的简单例子
原创
©著作权归作者所有:来自51CTO博客作者wx62d20ab5537c1的原创作品,请联系作者获取转载授权,否则将追究法律责任
编者:李国帅
时间:2014/10/27 10:12:54
背景原因:
查看别人的代码,连带了解一下ef的用法
安装EF:
直接在vs安装
创建步骤:
1、创建console项目
2、添加类-c#项--数据---ado.net实体数据模型---创建连接,生成一个model1.edmx文件
在app.config中可看到已经添加了连接字符串。
<configuration>
<connectionStrings>
<add name="testEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=MySql.Data.MySqlClient;provider connection string="server=192.168.10.8;User Id=root;password=root;Persist Security Info=True;database=test"" providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>
3、右键点击某个表,进行表映射,然后点击添加代码生成项。选择c#项--代码--Ado.net entityobject 生成器。
4、点击生成的model.tt,下面有个model1.cs,可以看到生成的映射类。
5、在program.cs中添加数据操作。
所需资源:
Visual studio C#, mysql ,EF
测试代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var person = new personmaster
{
Person_ID = 10,
surname = "Nadege",
forename = "Deroussen",
Address1 = "",
Address2 = ""
};
using (var context = new testEntities())
{
context.AddTopersonmaster(person);
context.SaveChanges();
}
Console.Write("Person saved !");
Console.ReadLine();
}
}
}
注意点:
mysql执行的时候标记和sqlserver是不同的,
使用ef反向生成的sql语句是sqlserver的语句,不能生成mysql语法的执行语句。
-- Creating table 'Shop'
CREATE TABLE [dbo].[Shop] (
[ID] int IDENTITY(1,1) NOT NULL,
[Type] longtext NULL
);
mysql认可的语句是
CREATE TABLE `Shop` (
`ID` int NOT NULL,
`Type` longtext NULL
);
不支持中括号[,双引号,单引号,支持的符号是键盘中1前面的‘符号。