entity framework 6database first一定要用控制台吗

C# ORM—Entity Framework 之Database first(数据库优先)&Model First(模型优先)(一)
C# ORM—Entity Framework 之Database first(数据库优先)&Model First(模型优先)(一)
发布时间: 20:52:27
编辑:www.fx114.net
本篇文章主要介绍了"C# ORM—Entity Framework 之Database first(数据库优先)&Model First(模型优先)(一)",主要涉及到C# ORM—Entity Framework 之Database first(数据库优先)&Model First(模型优先)(一)方面的内容,对于C# ORM—Entity Framework 之Database first(数据库优先)&Model First(模型优先)(一)感兴趣的同学可以参考一下。
一、什么是Entity Framework 1.1 实体框架(EF)是一个对象关系映射器,使.NET开发人员使用特定于域的对象与关系数据。它消除了需要开发人员通常需要编写的大部分数据访问代码。简化了原有的ado.net 数据访问方式。&ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。 1.2 在C#中常用的ORM框架有: 1.NHibernate (从java的Hibernate延伸过来) 2.Linq to SQL类 (只针对MSSQL数据库的) 3.Entity FrameWork(微软的一个开源的ORM,可以针对多种主流数据库(如MSSQL、MySql、Oracle等)) 1.3 本文暂时编写关于Entity Framework文章,后续有时间会补充NHibernate,Linq to SQL系列文章。 二、Entity Framework Database first(数据库优先)使用过程 2.1 建立数据库 2.1.1 建立表Blogs 1 CREATE TABLE [dbo].[Blogs] (
2 [BlogId] INT NOT NULL,
3 [Name] VARCHAR (50) NULL,
4 [Url] VARCHAR (50) NULL,
5 PRIMARY KEY CLUSTERED ([BlogId] ASC)
6 ); View Code 2.1.2 建立表Posts 1 CREATE TABLE [dbo].[Posts]
3 [PostId] INT NOT NULL PRIMARY KEY,
4 [Title] VARCHAR(50) NULL,
5 [Content] VARCHAR(50) NULL,
6 [BlogId] INT NULL,
7 CONSTRAINT [FK_Posts_ToBlogs] FOREIGN KEY (BlogId) REFERENCES [Blogs](BlogId)
8 ) View Code 2.2 建立项目 2.2.1 新建一个控制台项目 2.2.1 添加—》新建项—》数据—》ADO.NET实体数据模型—》添加—》从数据库生成—》下一步—》新建连接(连接设置刚刚自己使用的数据库)—》下一步—》选中自己要使用的表,以及视图。存储过程等—》完成 2.3 使用(个人建立的实体数据名称为:BloggingModel) 2.3.1 文件简介 App.config :配置文件,此文件已包含实体数据的数据库链接等基本信息 1 &connectionStrings&
2 &add name=&BloggingContext& connectionString=&metadata=res://*/BloggingModel.csdl|res://*/BloggingModel.ssdl|res://*/BloggingModel.provider=System.Data.SqlCprovider connection string=&data source=(localdb)\v11.0;initial catalog=DatabaseFirst.Bintegrated security=TMultipleActiveResultSets=TApp=EntityFramework&& providerName=&System.Data.EntityClient& /&
3 &/connectionStrings& BloggingModel.Context.cs:实体数据模型的上下文(BloggingModel.Context.tt下) BloggingModel.tt:这个下面包含了 具体的实体(也就是以数据库表为单位的类) 2.3.2 编写基本测试程序 1 using (var db = new BloggingContext())
3 Console.WriteLine(&输入一个新的Blog名称&);
4 var name = Console.ReadLine();
6 var blog = new Blogs {Name=name };
7 db.Blogs.Add(blog);
8 db.SaveChanges();
10 var query = from b in db.Blogs
11 orderby b.Name
13 foreach (var item in query)
15 Console.WriteLine(item.Name);
17 Console.ReadKey();
18 } View Code 至此基本使用结束 2.4 扩展使用 2.4.1 增加数据库表(Users) 1 CREATE TABLE [dbo].[Users] (
2 [Username] NVARCHAR (128) NOT NULL,
3 [display_name] NVARCHAR (MAX) NULL,
4 CONSTRAINT [PK_dbo.Users] PRIMARY KEY CLUSTERED ([Username] ASC)
5 ); View Code 2.4.2 更新实体数据模型 双击打开BloggingModel.edmx—》空白处,右键单击—》从数据库更新模型—》选中要添加的数据表即可(此时也可以执行删除表)。 三、Entity Framework Model first(模型优先)使用过程 3.1 新建项目 新建一个控制台项目即可 3.2 新建实体数据模型 添加—》新建项—》数据—》ADO.NET实体数据模型—》空模型—》完成 3.3 添加实体模型(打开BloggingModel.edmx) 3.3.1 修改“实体容器名称”:在BloggingModel.edmx中,空白处右键单击—》属性—》实体容器名称—》(修改成自己想要的名称)& 3.3.2 添加实体 在BloggingModel.edmx中,空白处右键单击—》新增—》实体—》确定 填写实体名称,修改实体集名称(这个是数据库表名称),以及修改属性名 再在此实体上,右键单击—》新增—》标量属性,这里增加自己想要的字段即可,以及对此字段的属性修改。 同理即可新增多个实体 3.3.3 添加关系 在BloggingModel.edmx中,空白处右键单击—》新增—》关联—》设置自己想要的关联关系—》确定 3.4 生成数据库 3.4.1 在BloggingModel.edmx中,空白处右键单击—》根据模型生成数据库—》新建连接(设置好数据库连接)—》确定—》下一步(这时会生成sql语句代码)—》完成。 3.4.2 打开SQL代码文件,右键—》连接—》连接自己上文创建的数据库即可—》执行SQL代码即可,查看数据库。至此模型优先基本完成 3.5 文件说明简介 App.config:配置文件:包含了数据库连接语句 1 &connectionStrings&
2 &add name=&BloggingContext& connectionString=&metadata=res://*/BloggingModel.csdl|res://*/BloggingModel.ssdl|res://*/BloggingModel.provider=System.Data.SqlCprovider connection string=&data source=(localdb)\v11.0;initial catalog=ModelFirst.Bintegrated security=TMultipleActiveResultSets=TApp=EntityFramework&& providerName=&System.Data.EntityClient& /&
3 &/connectionStrings& View Code BloggingModel.Context.cs:实体上下文类 Bloggingmodel.tt:下包含了数据实体类(也就是以数据库表为单位的实体类) 3.6 基本测试代码 1 Console.WriteLine(&请输入一个Blogs名称&);
2 var name = Console.ReadLine();
4 using(var db=new BloggingContext())
6 var blog = new Blog { Name = name };
7 db.Blogs.Add(blog);
8 db.SaveChanges();
10 var query = from b in db.Blogs
11 orderby b.Name
13 foreach (var item in query)
15 Console.WriteLine(item.Name);
17 Console.ReadKey();
18 } View Code 3.7 扩展应用—模型修改 3.7.1 打开BloggingModel.edmx,空白处右键—》新增—》实体(设置好要增加的实体)—》确定。 3.7.2 打开BloggingModel.edmx,空白处右键—》根据模型生成数据库—》完成(会有一个覆盖旧文件的警告) 3.7.3 打开重新生成的SQL语句,右键—》执行即可,查看数据库表。(此步可能会使已生成好的数据库数据,表结构发生改变,谨慎操作) 至此,基本介绍完成。
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!
二、互相尊重,对自己的言论和行为负责。
本文标题:
本页链接:在上一篇中我们简单了解的EF的定义和大体的情况,我们通过一步一步的做一个简单的实际例子来让大家对EF使用有个简单印象。好,废话少说,直入主题。
第一步:创建控制台项目
这个就不多说了,如果新建项目你还不知道,那先去学学基础吧。
第二步:创建实体模型
在项目上右击 添加新建项目&Ado.Net实体数据模型
如下图所示:
第三步:与现有的数据库进行连接生成EF实体
在做这步之前,首先确定你是否已经有现有数据库,当然在这提供我自己的数据库脚本。
-- ---------------------------------------------------- Entity Designer DDL Script for SQL Server 2005, 2008, and Azure-- ---------------------------------------------------- Date Created: 02/20/2011 09:47:54-- Generated from EDMX file: E:\Job\projects\WebTest\EF\Model1.edmx-- --------------------------------------------------SET QUOTED_IDENTIFIER OFF;GOUSE [SchoolDB];GOIF SCHEMA_ID(N'dbo') IS NULL EXECUTE(N'CREATE SCHEMA [dbo]');GO-- ---------------------------------------------------- Dropping existing FOREIGN KEY constraints-- --------------------------------------------------IF OBJECT_ID(N'[dbo].[FK_ClassStudent]', 'F') IS NOT NULL
ALTER TABLE [dbo].[T_Student] DROP CONSTRAINT [FK_ClassStudent];GOIF OBJECT_ID(N'[dbo].[FK_ClassTeacher]', 'F') IS NOT NULL
ALTER TABLE [dbo].[T_Teacher] DROP CONSTRAINT [FK_ClassTeacher];GO-- ---------------------------------------------------- Dropping existing tables-- --------------------------------------------------IF OBJECT_ID(N'[dbo].[T_Class]', 'U') IS NOT NULL
DROP TABLE [dbo].[T_Class];GOIF OBJECT_ID(N'[dbo].[T_Student]', 'U') IS NOT NULL
DROP TABLE [dbo].[T_Student];GOIF OBJECT_ID(N'[dbo].[T_Teacher]', 'U') IS NOT NULL
DROP TABLE [dbo].[T_Teacher];GO-- ---------------------------------------------------- Creating all tables-- ---------------------------------------------------- Creating table 'T_Class'CREATE TABLE [dbo].[T_Class] (
[ID] int IDENTITY(1,1) NOT NULL,
[Name] nvarchar(max)
NOT NULL);GO-- Creating table 'T_Student'CREATE TABLE [dbo].[T_Student] (
[ID] uniqueidentifier
[Name] nvarchar(max)
[ClassID] int
[Phone] nvarchar(max)
[Email] nvarchar(max)
NOT NULL);GO-- Creating table 'T_Teacher'CREATE TABLE [dbo].[T_Teacher] (
[ID] int IDENTITY(1,1) NOT NULL,
[Name] nvarchar(max)
[Address] nvarchar(max)
[Phone] nvarchar(max)
[Email] nvarchar(max)
[ClassID] int
NOT NULL);GO-- ---------------------------------------------------- Creating all PRIMARY KEY constraints-- ---------------------------------------------------- Creating primary key on [ID] in table 'T_Class'ALTER TABLE [dbo].[T_Class]ADD CONSTRAINT [PK_T_Class]
PRIMARY KEY CLUSTERED ([ID] ASC);GO-- Creating primary key on [ID] in table 'T_Student'ALTER TABLE [dbo].[T_Student]ADD CONSTRAINT [PK_T_Student]
PRIMARY KEY CLUSTERED ([ID] ASC);GO-- Creating primary key on [ID] in table 'T_Teacher'ALTER TABLE [dbo].[T_Teacher]ADD CONSTRAINT [PK_T_Teacher]
PRIMARY KEY CLUSTERED ([ID] ASC);GO-- ---------------------------------------------------- Creating all FOREIGN KEY constraints-- ---------------------------------------------------- Creating foreign key on [ClassID] in table 'T_Student'ALTER TABLE [dbo].[T_Student]ADD CONSTRAINT [FK_ClassStudent]
FOREIGN KEY ([ClassID])
REFERENCES [dbo].[T_Class]
ON DELETE NO ACTION ON UPDATE NO ACTION;-- Creating non-clustered index for FOREIGN KEY 'FK_ClassStudent'CREATE INDEX [IX_FK_ClassStudent]ON [dbo].[T_Student]
([ClassID]);GO-- Creating foreign key on [ClassID] in table 'T_Teacher'ALTER TABLE [dbo].[T_Teacher]ADD CONSTRAINT [FK_ClassTeacher]
FOREIGN KEY ([ClassID])
REFERENCES [dbo].[T_Class]
ON DELETE NO ACTION ON UPDATE NO ACTION;-- Creating non-clustered index for FOREIGN KEY 'FK_ClassTeacher'CREATE INDEX [IX_FK_ClassTeacher]ON [dbo].[T_Teacher]
([ClassID]);GO-- ---------------------------------------------------- Script has ended-- --------------------------------------------------
然后按照如下所示,选择从数据库生成实体数据模型【当然如果你想使用CodeFirst方式也是可以的,这是后话了】:
新建连接到现有的数据库,如下图所示:
点击下一步,选择我们要生成实体对应的表、试图、存储过程等,如下图所示:
最后点击完成,则系统帮我们生成了数据库实体类以及EDMX的定义文件。
如图所示:
到现在我们前期的准备工作就结束了,我们接下来看看我们怎么使用EF帮我们生成的数据库网关
第四步:写增删改查来讲解EF的基本使用
添加如下代码:
using Susing System.Collections.Gusing System.Lusing System.Tnamespace EF{
class Program
static void Main(string[] args)
//创建数据库访问网关
using (SchoolDBEntities schoolEntities = new SchoolDBEntities())
//查询到老师对应的班级的外键,注意是使用的linq to ef ,它是生成的命令树,然后是生成的sql
var cls = (from c in schoolEntities.T_Class
where c.ID == 2
select c).SingleOrDefault&T_Class&();
//创建teacher一个实体
T_Teacher teacher = new T_Teacher();
teacher.Address = "北京海淀上地";
teacher.Email = "";
teacher.T_Class =
teacher.Name = "Flydragon";
teacher.Phone = "110";
//将创建的实体,放入网关的数据实体的集合
schoolEntities.T_Teacher.AddObject(teacher);
//写回数据库
schoolEntities.SaveChanges();
Console.WriteLine("OK");
最终数据库中添加了一条数据,如下图所示:
然后我正好打开了Sql Server Profiler工具我们看一下,EF生成的SQL语句是什么,如下图所示:
最后一个就是执行insert插入数据库表的sql,如下图所示:
好这样我们一个入门的实例程序,就结束了,我们看到最后EF还是生成的SQL执行的。所以EF本身性能的损失也就是根据对实体集合的修改,然后根据edmx的定义最终成sql这段,也就是浪费了点cpu而已,而且ef还会自动帮我们对sql进行优化,所以还是蛮不错的!
欢迎拍砖指点!
阅读(...) 评论()Entity Framework code first 手动修改数据库的问题 - 推酷
Entity Framework code first 手动修改数据库的问题
1. 手动给表格添加字段或者新增一个表格会不会对DBContext产生影响呢?
不会产生影响,如果我们不想code中的model不和数据库中增加的保持一致,可以不添加对应的字段和model,但是如果我们需要保持一致,如何做呢
步骤如下:
a. 将Model手动改成与数据库一致
b. 在执行DbContext的实例化前加一句 Database.SetInitializer&BloggingContext&(null);&
c. 如果以后你需要在添加model ,则如果你把之前你手动改动与数据库同步的部分注释掉,然后再利用add-update-database来更新仍然是可以用的
下面的例子展示了如何做:
手动在数据更改之前:
public class Blog
public int BlogId { get; set; }
public string Name { get; set; }
public string Url { get; set; }
public virtual List&Post& Posts { get; set; }
public class User
public int UserId { get; set; }
public string Username { get; set; }
public string DisplayName { get; set; }
//public int? age { }
//public string interest { }
public class School
public int SchoolId { get; set; }
public string SchoolName { get; set; }
public int SchoolLevel { get; set; }
public class Post
public int PostId { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public int BlogId { get; set; }
public virtual Blog Blog { get; set; }
public class Tutorial
public int Id { get; set; }
public int Name { get; set; }
public class BloggingContext : DbContext
public DbSet&Blog& Blogs { get; set; }
public DbSet&Post& Posts { get; set; }
public DbSet&User& Users { get; set; }
public DbSet&Tutorial& Tutorials { get; set; }
//public DbSet&School& Schools { }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
modelBuilder.Entity&User&().Property(u =& u.DisplayName).HasColumnName(&display_name&);
modelBuilder.Entity&User&().Property(u =& u.Username).HasColumnName(&user_name&);
数据库中的表:
手动添加了表Schools并且更改了Users表中的字段
自己手动更改Model并保持与数据库同步
public class Blog
public int BlogId { get; set; }
public string Name { get; set; }
public string Url { get; set; }
public virtual List&Post& Posts { get; set; }
public class User
public int UserId { get; set; }
public string Username { get; set; }
public string DisplayName { get; set; }
public int? age { get; set; }
public string interest { get; set; }
public class School
public int SchoolId { get; set; }
public string SchoolName { get; set; }
public int SchoolLevel { get; set; }
public class Post
public int PostId { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public int BlogId { get; set; }
public virtual Blog Blog { get; set; }
public class Tutorial
public int Id { get; set; }
public int Name { get; set; }
public class BloggingContext : DbContext
public DbSet&Blog& Blogs { get; set; }
public DbSet&Post& Posts { get; set; }
public DbSet&User& Users { get; set; }
public DbSet&Tutorial& Tutorials { get; set; }
public DbSet&School& Schools { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
modelBuilder.Entity&User&().Property(u =& u.DisplayName).HasColumnName(&display_name&);
modelBuilder.Entity&User&().Property(u =& u.Username).HasColumnName(&user_name&);
如果你调用add-migration and update-database 会提示
There is already an object named 'Schools' in the database.
所以你去访问数据库时会出现错误:
using (var db = new BloggingContext())
//var query2 = from b in db.Schools
orderby b.SchoolName
//var schoolList = query2.ToList();
var query1 = from b in db.Users
orderby b.Username
var userList = query1.ToList();
// Create and save a new Blog
Console.Write(&Enter a name for a new Blog: &);
var name = Console.ReadLine();
var user = new User { UserId = 0, Username = name };
db.Users.Add(user);
db.SaveChanges();
//var blog = new Blog { Name = name };
//db.Blogs.Add(blog);
//db.SaveChanges();
// Display all Blogs from the database
var query = from b in db.Blogs
orderby b.Name
Console.WriteLine(&All blogs in the database:&);
foreach (var item in query)
Console.WriteLine(item.Name);
Console.WriteLine(&Press any key to exit...&);
Console.ReadKey();
会产生异常:
An unhandled exception of type 'System.InvalidOperationException' occurred in EntityFramework.dll
Additional information: The model backing the 'BloggingContext' context has changed since the database was created. Consider using Code First Migrations to update the database (/fwlink/?LinkId=238269).
如果在using (var db = new BloggingContext())前加上Database.SetInitializer&BloggingContext&(null);就不会报错
但是如果以后想添加Model的话,怎么做呢,我们可以将之前你添加与手动添加School表和修改user表的一些信息注释掉,migration文件也删除,然后你在添加model再去执行数据迁移就不会出问题,迁移好了后,你在重新反注释即可。
2. 数据库连接字符串的更改
在 Code First 模式下按约定使用连接
如果您还没有在应用程序中进行任何其他配置,则对 DbContext 调用无参数构造函数将会导致 DbContext 使用按约定创建的数据库连接在 Code First 模式下运行。例如:
1 namespace Demo.EF
public class BloggingContext : DbContext
public BloggingContext()
// C# will call base class parameterless constructor by default
在此示例中,DbContext 使用派生上下文类 Demo.EF.BloggingContext 的命名空间限定名称作为数据库名称,并使用 SQL Express 或 LocalDb 为此数据库创建连接字符串。如果同时安装了这两个数据库,将使用 SQL Express。
默认情况下,Visual Studio 2010 包含 SQL Express,Visual Studio 2012 包含 LocalDb。安装期间,EntityFramework NuGet 包会检查哪个数据库服务器可用。随后 NuGet 包将设置按约定创建连接时 Code First 所使用的默认数据库服务器,以此更新配置文件。如果 SQL Express 正在运行,将使用它。如果 SQL Express 不可用,则 LocalDb 将注册为默认数据库。如果配置文件已包含默认连接工厂设置,则不会更改该文件。
在 Code First 模式下按约定和指定数据库名称使用连接
如果您尚未在应用程序中进行任何其他配置,在通过要使用的数据库名称对 DbContext 调用字符串构造函数时,将会导致 DbContext 使用按约定创建的与该名称数据库的连接在 Code First 模式下运行。例如:
public class BloggingContext : DbContext
public BloggingContext()
: base(&BloggingDatabase&)
在此示例中,DbContext 使用“BloggingDatabase”作为数据库名称,并使用 SQL Express(随 Visual Studio 2010 安装)或 LocalDb(随 Visual Studio 2012 安装)为此数据库创建连接字符串。如果同时安装了这两个数据库,将使用 SQL Express。
在 Code First 模式下使用 app.config/web.config 文件中的连接字符串
可以选择将连接字符串放入 app.config 或 web.config 文件中。例如:
&configuration&
&connectionStrings&
&add name=&BloggingCompactDatabase&
providerName=&System.Data.SqlServerCe.4.0&
connectionString=&Data Source=Blogging.sdf&/&
&/connectionStrings&
&/configuration&
这是一种指示 DbContext 使用数据库服务器而非 SQL Express 或 LocalDb 的简单方法 — 上例指定了 SQL Server Compact Edition 数据库。
如果连接字符串的名称与上下文的名称(带或不带命名空间限定)相同,则使用无参数构造函数时 DbContext 会找到该连接字符串。如果连接字符串名称与上下文名称不同,则可通过将连接字符串名称传递给 DbContext 构造函数,指示 DbContext 在 Code First 模式下使用此连接。例如:
1 public class BloggingContext : DbContext
public BloggingContext()
: base(&BloggingCompactDatabase&)
或者,也可以对传递给 DbContext 构造函数的字符串使用 “name=&连接字符串名称&”格式。例如:
1 public class BloggingContext : DbContext
public BloggingContext()
: base(&name=BloggingCompactDatabase&)
使用此形式可以明确要求在配置文件中查找连接字符串。如果未找到具有给定名称的连接字符串,则将引发异常。
Database/Model First 使用 app.config/web.config 文件中的连接字符串
使用 EF 设计器创建的模型不同于 Code First,因为该模型事先已存在,而不是在应用程序运行时从代码生成的。该模型通常在项目中以 EDMX 文件形式存在。
Designer 会将 EF 连接字符串添加到 app.config 或 web.config 文件中。此连接字符串十分特殊,因为它说明了如何在 EDMX 文件中查找信息。例如:
1 &configuration&
&connectionStrings&
&add name=&Northwind_Entities&
connectionString=&metadata=res://*/Northwind.csdl|
res://*/Northwind.ssdl|
res://*/Northwind.
provider=System.Data.SqlC
provider connection string=
&Data Source=.\
Initial Catalog=N
Integrated Security=T
MultipleActiveResultSets=True&&
providerName=&System.Data.EntityClient&/&
&/connectionStrings&
15 &/configuration&
EF 设计器还将生成一些代码,指示 DbContext 通过将连接字符串名称传递给 DbContext 构造函数来使用此连接。例如:
1 public class NorthwindContext : DbContext
public NorthwindContext()
: base(&name=Northwind_Entities&)
由于连接字符串是包含待用模型详细信息的 EF 连接字符串,因此 EF DbContext 十分清楚要加载现有模型(而不是使用 Code First 从代码计算模型)。
其他 DbContext 构造函数选项
DbContext 类包含支持其他一些更高级方案的其他构造函数和使用模式。其中一些选项有:
可以使用 DbModelBuilder 类构建 Code First 模型,而不实例化 DbContext 实例。这样会生成 DbModel 对象。随后,在准备好创建 DbContext 实例时,可以将此 DbModel 对象传递给某一 DbContext 构造函数。
可以将完整连接字符串传递给 DbContext,而不仅仅传递数据库或连接字符串名称。此连接字符串默认用于 System.Data.SqlClient 提供程序;可以通过在 context.Database.DefaultConnectionFactory 上设置不同的 IConnectionFactory 实现来更改此行为。
可以通过将现有 DbConnection 对象传递给 DbContext 构造函数来使用该对象。如果连接对象是 EntityConnection 的实例,则将使用连接中指定的模型,而不使用 Code First 计算模型。如果该对象是其他某一类型(例如 SqlConnection)的实例,则上下文将在 Code First 模式下使用该对象。
可以通过将现有 ObjectContext 传递给 DbContext 构造函数,创建包装现有上下文的 DbContext。对于使用 ObjectContext 但希望在其中一部分利用 DbContext 的现有应用程序,这一点十分有用。
SQL 使用的连接字符串:
1 &connectionStrings&
2 &!--&add name=&eRebateContext& connectionString=&Database=eRebateTServer=10.40.15.16;uid=pwd=a8@MultipleActiveResultSets=true& providerName=&System.Data.SqlClient&/&
3 &add name=&NotesConnection& connectionString=&server=10.40.15.16;database=Duid=pwd=a8@MultipleActiveResultSets=true& providerName=&System.Data.SqlClient&/&--&
4 &add name=&eRebateContext& connectionString=&Database=eRServer=V-BLCHEN-02;Trusted_connection=YMultipleActiveResultSets=True& providerName=&System.Data.SqlClient& /&
5 &add name=&NotesConnection& connectionString=&Database=DServer=V-BLCHEN-02;Trusted_connection=YMultipleActiveResultSets=True& providerName=&System.Data.SqlClient& /&
6 &!--&add name=&eRebateContext& connectionString=&Database=eRServer=10.40.15.81;user=password=mis& providerName=&System.Data.SqlClient&/&
7 &add name=&NotesConnection& connectionString=&Database=DServer=10.40.15.81;user=password=mis& providerName=&System.Data.SqlClient&/&--&
8 &/connectionStrings&
Mysql 使用的连接字符串 ( install Mysql.data.entity )
&connectionStrings&
&add name=&JdCloudDbContext& providerName=&MySql.Data.MySqlClient& connectionString=&server=database=jd_cloud_UID=password=&/&
&/connectionStrings&
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致

我要回帖

更多关于 entity framework 的文章

 

随机推荐