编者:李国帅


时间:2014/10/27 10:12:54

背景原因:

查看别人的代码,连带了解一下ef的用法

安装EF:

直接在vs安装

使用ef的简单例子_c#

创建步骤:

         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前面的‘符号。