導航:首頁 > 編程大全 > 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生成資料庫相關的資料

熱點內容
微信總是載入數據怎麼回事 瀏覽:203
不同編程語言如何調用系統api 瀏覽:328
到付的文件一般是什麼 瀏覽:959
圖片如何轉為文件方式發送 瀏覽:546
大眾奧迪通道數據流手冊怎麼讀懂 瀏覽:230
友盟微信分享未知錯誤 瀏覽:28
下載完win10系統文件打不開 瀏覽:182
奢侈包微信代理廠家 瀏覽:754
壓縮文件怎麼合卷 瀏覽:125
4kb的txt文件差不多多少字 瀏覽:984
u盤文件突然變成exe 瀏覽:164
現在哪些學校初中有學編程的 瀏覽:402
word查找全選 瀏覽:599
開工報告附什麼文件資料 瀏覽:150
分區工具app怎麼用 瀏覽:212
安卓堅果雲文件路徑 瀏覽:591
sqllog文件 瀏覽:236
如何在電腦中找到文件路徑 瀏覽:830
數據結構訪問和查找有什麼區別 瀏覽:401
怎麼清空icloud內的數據 瀏覽:338

友情鏈接