导航:首页 > 编程大全 > ef生成数据库

ef生成数据库

发布时间:2023-02-25 14:49:47

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

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

需求蛮奇特的

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

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

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

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

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

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

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

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

如图所示:

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

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

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

4. 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 }

5. EF中的code first模式 怎么创建数据库

方法/步骤

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

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

阅读全文

与ef生成数据库相关的资料

热点内容
4kb的txt文件差不多多少字 浏览:984
u盘文件突然变成exe 浏览:164
现在哪些学校初中有学编程的 浏览:402
word查找全选 浏览:599
开工报告附什么文件资料 浏览:150
分区工具app怎么用 浏览:212
安卓坚果云文件路径 浏览:591
sqllog文件 浏览:236
如何在电脑中找到文件路径 浏览:830
数据结构访问和查找有什么区别 浏览:401
怎么清空icloud内的数据 浏览:338
微信锁屏后音乐停止 浏览:668
applepay苹果手机卡 浏览:835
一个14mb的文件能储存多少万汉字 浏览:478
腾讯文档里如何导出数据 浏览:979
java面试题csdn 浏览:410
rpgnvp是什么文件 浏览:594
如何将一列数据复制到excel 浏览:488
sd卡怎么恢复excel文件 浏览:282
gdblinux内核多核调试 浏览:24

友情链接