当前位置:首页 » 数据仓库 » ef生成数据库
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

ef生成数据库

发布时间: 2022-10-01 00:05:12

A. EF通过数据库生成code first实体,数据库中不添加外键关系,实体类中如何配置关联关系

你是想数据库不要外键 但是实体要导航属性吧

需求蛮奇特的

  1. 你实体也不加导航属性 需要关联数据的时候用 JOIN 查询

  2. 重新EF接口 在生成数据库的时候 只解释生成关系

B. 采用EF开发数据库,前台使用jqGrid直接获取数据。现在问题,如果有多表联合查询如何解决

若EF是采用代码优先生成数据库的话则需要修改EF中对应的Model的代码,即info中新增一列即可,不需要改动其他内容了;

若EF是采用根据现有数据库生成的话,需要在数据库对应表中添加一列,再重新生成EF的代码即可。

C. ef code first 怎么生成数据库字段说明

ef code first 怎么生成数据库字段说明
At
its core, the ADO.NET Entity Framework relies on an Entity Data Model.
An EDM provides all the metadata the framework needs to translate LINQ
queries into

D. EF code first 怎样创建数据库视图

1. 使用CodeFirst方式创建数据库
我们新建一个控制台项目,项目中添加两个Model:Author和Blog以及DbContext。 DbContext的添加方式如下:
项目上右键->添加->新建项->ADO.NET Entity Data Model->Empty Code First model
项目代码如下:

1 //默认生成的数据表名为类名+字母s,这里使用TableAttribute来指定数据表名为T_Authors
2 [Table("T_Authors")]
3 public class Author
4 {
5 public int Id { set; get; }
6 public string Name { set; get; }
7 /*
8 此处定义了Blog类型的属性,所以要确保Blog类中至少要有一个表示主键的字段,即public int Id { set; get; }。
否则在生成数据表时会报错:"EntityType 'Blog' has no key defined. Define the key for this EntityType.
9 Blogs: EntityType: EntitySet 'Blogs' is based on type 'Blog' that has no keys defined."
10 */
11 public virtual ICollection<Blog> Blogs { set; get; }
12 }
13
14 [Table("T_Blogs")]
15 public class Blog
16 {
17 public int Id { set; get; }
18 public string Title { set; get; }
19 public DateTime Time { set; get; }
20 public int AuthorId { set; get; }
21 public virtual Author Author { set; get; }
22 }
23
24 public class MyDbContext: DbContext
25 {
26 public MyDbContext()
27 : base("name=MyDbContext")
28 {
29 }
30 //DbContext会根据配置文件中connectionStrings指定的数据库名称来建立数据库
31 //DbContext根据DbSet属性的类型来创建数据表,这里指定了Author类型的属性,所以会生成T_Authors数据表
32 public virtual DbSet<Author> Authors { set; get; }
33 }

CodeFirst方式会根据配置文件中的配置生成数据库,这里小编使用的是MYsql数据库,配置文件如下:

1 <!--EF for MYSQL-->
2 <entityFramework codeConfigurationType="MySql.Data.Entity.MySqlEFConfiguration, MySql.Data.Entity.EF6">
3 <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
4 <providers>
5 <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
6 </providers>
7 </entityFramework>
8 <connectionStrings>
9 <add name="MyDbContext" connectionString="server=localhost;port=3306;database=EF;uid=root;password=root" providerName="System.Data.MySqlClient" />
10 </connectionStrings>

PS:小编使用的是EF6和MYSQL数据库,所以要在项目中添加对Mysql.Data.Entity.EF6以及EntityFrameword 6.0的引用。
到此,我们已经完成生成数据库的工作,接下来在Main方法中写两行代码:
1 using (var db = new ManagerDb())
2 {
3 db.Authors.Add(new Author() { Name = "xfh" });
4 db.SaveChanges();
5 }

E. C# ef自动生成数据库

要把Model 转换成SQl 数据库 只能还原出结构出来
类似ORM Model First
找到这个类 对应的属性 跟类名 产生对应的表名+栏位名 的SQl Creat Table 语法

F. ef数据库怎么迁移到生产数据库

update-database 加一个-script 参数, 这样就会生成一个更新脚本, 放到服务器上执行就可以了
不过对于数据的冲突还是要手动进行修复
比如你重新命名了一个列, 那么要在代码中告诉EF怎么处理, 否则的话它生成的脚本会删除原来的列, 然后重新建一个列,这样数据就丢了

G. .net+mvc5+oracle,使用EF自动创建数据库表的时候,为什么关联表没有自动生成

可以使用Entity Framework的Db First模式生成model。
第一步:创建
ASP .NET MVC项目
第二步:创建实体模型
在项目上右击 添加新建项目→Ado.Net实体数据模型
如下图所示:

第三步:与现有的数据库进行连接生成EF实体
然后按照如下所示,选择从数据库生成实体数据模型【当然如果你想使用CodeFirst方式也是可以的,这是后话了】:

新建连接到现有的数据库,如下图所示:

点击下一步,选择我们要生成实体对应的表、试图、存储过程等,如下图所示:

最后点击完成,则系统帮我们生成了数据库实体类以及EDMX的定义文件。

如图所示:

H. vs2015 mvc ef怎么创建数据库

具体的步骤有点复杂大概的步骤是
1.创建实体类
2.创建上下文类
3.去web.config设置数据库连接字符串
4.添加配置迁移文件
5.更新配置迁移文件
6.update-database
具体的我得去看下我的文件夹,下午给你一个具体的步骤

I. c#ef能直接操作sqlite数据库的生成吗

下载system.data.sqlite安装包,在system.data.sqlite.org上下载对应.NET Framework x.x版本的安装包。安装system.data.sqlite,按照提示一步一步执行即可。

下载SQLiteStudio,直接运行exe文件。创建数据库,以及操作数据表等等。

环境搭建好后就开始创建C#工程了,这里举例创建了一个Winform工程。在工程里引入system.data.sqlite.dll。注意:引用窗口打开后选择浏览,在安装目录下找到dll。默认安装路径是 C:\Program Files\System.Data.SQLite\2010\bin。如果不是使用VS2010,路径会不同

除了引用system.data.sqlite以外,还需要把SQLite.Interop.dll复制到程序根目录。

5
至此C#操作SQLite的开发环境就搭建好了。
6
异常解决:在实际使用中遇到了Unable to open the database file异常。查找了很久原因,排除了目录读写权限,连接字符串中增加Pooling=True;Journal Mode=Off;均为解决问题。后来发现我使用的是属性get来生产连接字符串,改为静态成员变量就没有问题了。这个问题还和操作系统有关,在win7上运行没有问题,在XP和2003上运行才会出现这个问题。