日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql ef_在EF中使用MySQL的方法及常见问题

發布時間:2024/9/19 数据库 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql ef_在EF中使用MySQL的方法及常见问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

有時需要在網上租用空間或數據庫,Mysql成本低一些,所以想將sql server轉成mysql……

注意:在安裝Mysql時要選擇文字集為utf8,否則將不能使用中文(當前也可以在創建數據庫時使用utf8,不過我不知道在ef生成數據庫時如何設置,希望高手指點)

一、在項目中引用mysql的EF包

通過NuGet包管理器安裝:EntityFramework6.1.3、MySql.Data.Entity6.9.8

也可以用nuget的命令行加入:

Install-Package MySql.Data.Entity

二、新建相關類

1、新建 User 實體類

并定義實例的字段長度,不定義的話會出現Specified key was too long;max key length is 767 bytes 的錯誤,這是因為string 類型直接映射到mysql 中的話是longtext,而mysql 支持最大長度為767 bytes.

public?class?User

{

public?int?Id?{?get;?set;?}

[StringLength(30)]

public?string?UserName?{?get;?set;?}

[MaxLength(30)]

public?string?PassWord?{?get;?set;?}

}

2、新建 MyContext 類

并說明用MySql進行實現?[DbConfigurationType(typeof(MySqlEFConfiguration))]

[DbConfigurationType(typeof(MySqlEFConfiguration))]

public?class?MyContext?:?DbContext

{

public?MyContext()

:?base("name=MyContext")//web.config中connectionstring的名字

{

}

public?DbSet?Users?{?get;?set;?}

}

3、寫測試代碼

Database.SetInitializer(new?DropCreateDatabaseIfModelChanges());

var?context?=?new?MyContext();

//插入一行值

context.Users.Add(new?User?{?UserName?=?"EF6MySQL"?});

context.SaveChanges();

三、配置Web.config

在中加入以下代碼:

完整的web.config如下:

最后,運行程序,完成數據庫自動創建

常見問題

出現錯誤提示:?Specified key was too long;max key length is 767 bytes

1)查看實體的字符串類型屬性是否設置了長度

2)MyContext?類中是否聲明為生成為mysql 數據類型的?[DbConfigurationType(typeof(MySqlEFConfiguration))]

出現錯誤提示:? ? Model compatibility cannot be checked because the database does not contain model metadata

刪除已生成的數據庫后重新運行程序

出現錯誤提示:序列不包含任何匹配元素

檢查一下:

例如:1.

public class Employee

{

[Key]

public int EmployeeId { get; set; }

public string Name { get; set; }

[ForeignKey("ManagerId")]

public Employee Manager { get; set; }

public int ManagerId { get; set; }

}

[ForeignKey("ManagerId")]

public Employee Manager { get; set; }

public int ManagerId { get; set; }

這個外鍵設置。

2.

[Column(TypeName="VARCHAR(254)")]

public string ColumnName { get; set; }

這樣的定義,改成:

[MaxLength(254)] [Column(TypeName="VARCHAR")]

public string ColumnName { get; set; }

3.(以下代碼未測試,因為我不是這樣用的,在下篇文章中將進行測試)

modelBuilder.Entity()

.HasKey(c => c.IdCategory )

.HasOptional(p => p.Children)

.WithMany()

.HasForeignKey(c => c.ChildrenId);

改成:

modelBuilder.Entity()

.HasKey(c => c.IdCategory )

.HasMany(p => p.Children)

.WithOptional()

.HasForeignKey(c => c.ChildrenId);

.WithMany()換成.WithOptional()

總結

以上是生活随笔為你收集整理的mysql ef_在EF中使用MySQL的方法及常见问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产麻豆91视频 | 中出白浆 | 人妻精品一区二区在线 | 色综合色综合色综合 | 吻胸摸激情床激烈视频 | 波多野结衣影片 | 欧美日韩中文在线观看 | 一炮成瘾1v1高h | 国产精品一区二区av白丝下载 | 热re99久久精品国产99热 | 成人毛片网站 | 国产高清一二三区 | 欧美日韩综合一区 | 日本视频一区二区 | 狠狠艹视频 | 欧美成人第一页 | 韩国av在线免费观看 | 伊人ab| 日本人dh亚洲人ⅹxx | 亚洲高清色| 曰本三级日本三级日本三级 | 特级西西444www大精品视频免费看 | 久久久久久久色 | 少妇激情一区二区三区视频 | a国产精品 | 亚洲孕交 | 亚洲乱色熟女一区二区 | 热久久影院 | 成人在线免费观看网站 | 99超碰在线观看 | 日韩视频一区二区三区 | 国产精品久久久精品三级 | 午夜a级片| 国产又爽又黄的激情精品视频 | 男女在线免费观看 | 日本美女裸体视频 | 日韩av资源网 | 在线天堂中文 | 成人av高清在线 | 狠狠操91| 欧美精品一区二区不卡 | 亚洲一区亚洲二区 | 日本免费黄色网址 | 国产精品一区二区三区在线播放 | 婷婷五月在线视频 | 中文字幕av影视 | 羞羞免费视频 | 午夜婷婷色 | 亚洲影院在线 | 国产吞精囗交久久久 | 国产成人小视频在线观看 | 一区二区三区丝袜 | 中文字幕在线观看亚洲 | 新超碰在线 | 少妇免费视频 | 又粗又猛又爽又黄少妇视频网站 | 国产乱码精品一区二区三区忘忧草 | 操视频网站 | 男女啪啪在线观看 | 手机在线亚洲 | 九色视频自拍 | 欧美成人乱码一二三四区免费 | 欧美日韩一级片在线观看 | 国产理论片| 国产伦精品一区二区三区照片91 | 97爱爱爱| 九色在线观看视频 | 国产人妖一区 | 精品国产av色一区二区深夜久久 | 午夜影院欧美 | 爱情岛论坛永久入口 | 熟女国产精品一区二区三 | 免费的黄色大片 | 一本色道久久综合亚洲二区三区 | 国产情侣一区二区三区 | 精品亚洲精品 | 手机在线一区 | 久久久久亚洲av成人片 | 让男按摩师摸好爽 | 阿v免费在线观看 | 色婷婷av一区二区三区之e本道 | 九九天堂网| 国产在线观看无码免费视频 | 日本成人在线看 | 免费三片60分钟 | 久草精品在线 | 中文字幕一区二区三区av | 国产精品人成在线观看免费 | 欧美顶级少妇做爰hd | 五月天色丁香 | 久草成人在线视频 | 成人性生交大片免费 | 欧美性成人 | 伊人av网站| 青青青在线| 春物催眠 | 国产精品久久久久久久毛片 | 欧美1314| 男人操女人的网站 |