EntityFramework
coder i++
coder i++分享一下 ,记录一下
展开
-
ef+mysql配置
mysql授权数据库至某用户。原创 2023-01-30 21:04:09 · 585 阅读 · 0 评论 -
entityframework 主从表删除问题
entityframework主从表删除问题主表principaltable从表dependenttable1对n的关系dbcontext db//主表实体中附加主对象db.principaltables.Attach(model);//加载主表的从对象db.Entry(model).Collection(“propertyName”).Load();//将主表的从对象 从 从对象集合中删除db.dependenttables.RemoveRange(model.depende原创 2021-12-24 16:59:20 · 441 阅读 · 0 评论 -
解决EF使用context.Database.SqlQuery时NotMapped属性列为空null的问题
解决EF使用context.Database.SqlQuery时NotMapped属性列为空null的问题有时候我们要为EF中的Model加一个新属性,这个属性不是数据库中的字段,而是从其它表中关联出来的。EF中要标示一个列不是对应表中字段只需要加上NotMapped特性。要使用NotMapped,保证你的项目引用了System.ComponentModel.DataAnnotations.dll,NotMapped特性在命名空间System.ComponentModel.DataAnnotations.转载 2021-12-24 16:16:00 · 663 阅读 · 0 评论 -
entity framework dev set & connectionstring
mysql ef6 <add name="CusDbContext" connectionString="Data Source=ip;port=3306;Initial Catalog=dbname;uid=uname;password=pwd;Convert Zero Datetime=True" providerName="MySql.Data.MySqlClient" /> [DbConfigurationType(typeof(MySql.Data.Entity.MySqlE原创 2021-07-03 11:03:01 · 331 阅读 · 0 评论 -
entity framework seed data
在数据库初始化过程中,可以添加一些默认或测试数据public class SchoolDBInitializer : DropCreateDatabaseAlways<SchoolDBContext>{ protected override void Seed(SchoolDBContext context) { IList<Standard> defaultStandards = new List<Standard>();原创 2021-06-26 14:32:08 · 155 阅读 · 0 评论 -
orm思路
参考orm吸收了面向对像的思想,把sql的操作转换为对对象的操作。这种转换是通过对象和表之间的元数据映射实现的。Entity->TableProperty->Column以及其它的外键,索引等的映射。hibrenate中可写配置文件也可以注解。1 先解析hibrenate.cfg.xml,并将信息存到一个Properties中。2 从配置文件中解析配置文件和实体类的关系,并合并存储到aggregatedCfgXml中。3 SessionFacory依据相关实体生成相应的sql原创 2021-06-26 14:31:31 · 90 阅读 · 0 评论 -
entity framework migration
数据迁移自动迁移代码迁移update-database -verbose -fupdate-database -verbose -targetmigration:migrationfilenameEnable-Migrations -EnableAutomaticMigration:$true// -f 覆盖掉Migrations中的Configuration文件Enable-Migrations -ContextType CusDbName -f自动迁移打开nuget1、Enable原创 2021-06-25 16:17:04 · 409 阅读 · 0 评论 -
entity framework move EntityTypeConfiguration to separate class
ef中实体信息过多的时候,fluent api维护不方便,可读性也差,这时可以将Entity放在单独的类中。public class CusDbContext:DbContext{ public CusDbContext():base() { } public DbSet<Student> Students{get;set;} protected override void OnModelCreating(DbModelBuilder modelBuilder) { m原创 2021-06-22 05:41:07 · 93 阅读 · 0 评论 -
entity framework cud operations use stored procedures
参考public class Student{ public int StudentId{get;set;} public string StudentName{get;set;} public DateTime DoB{get;set;}}public class CusDbContext:DbContext{ protected override void OnModelCreating(DbModelBuilder modelBuilder) { //use MapToSto原创 2021-06-22 05:29:20 · 102 阅读 · 0 评论 -
entity framework generate context & entity classes from an existing db
参考很简单的步骤1.ctrl+shif+a2.ado.net entity data model3.choose code first from database4.select or create connection5.select table or view or sp原创 2021-06-22 05:21:48 · 89 阅读 · 0 评论 -
entity framework code-frist config entity relationship
实体关系配置1.0 1.11.n方式1方式2方式3方式4n.n参考1.0 1.1er关系图Student可以没有StudentAddress,但是StudentAddress添加再保存时必须有Student的信息,否则异常。public class Student{ public int StudentId { get; set; } public string StudentName { get; set; } public virtual StudentAd原创 2021-06-22 05:17:37 · 109 阅读 · 0 评论 -
entity framework mysql dev set
开发环境记一下原创 2021-06-19 17:14:17 · 113 阅读 · 0 评论 -
entity framework db-first optimistic concurrency
表中加入列rowversion timestamp类型在添加或更新的时候原创 2021-06-19 13:38:22 · 112 阅读 · 0 评论 -
entity framework code-first config domain class
System.ComponentModel.DataAnnotationsData Annonation Attributes[Table("StudentInfo")]public class Student{ public Student() { } [Key] public int SID { get; set; } [Column("Name", TypeName="ntext")] [MaxLength(20)] publ原创 2021-06-19 11:02:06 · 148 阅读 · 0 评论 -
entity framework db-first other chapter
其它内容一并总结到这里,内容与前面的可能有些重叠,但还是记下。文章目录存储过程cudDbEntityEntry变化追踪枚举特殊数据类型视图表函数实体验证多图标记实体code config日志追踪命令拦截事务以下的这里均链至原文接下来的内容不写了 ,原文看着挺方便存储过程cud这里CREATE PROCEDURE [dbo].[GetCoursesByStudentId] -- Add the parameters for the stored procedure here @原创 2021-06-19 10:34:36 · 100 阅读 · 0 评论 -
entity framework add remove range
批量添加删除add rangeIList<Student> newStudents = new List<Student>() { new Student() { StudentName = "Steve" }; new Student() { StudentName = "Bill" };原创 2021-06-17 11:57:06 · 154 阅读 · 0 评论 -
entity framework eager lazy explict loading
加载模式1、eager loading2、lazy loading3、exlict loading1、eager loading提前加载好联联的实体信息using (var ctx = new SchoolDBEntities()){ //Loading students only IList<Student> studList = ctx.Students.ToList<Student>(); Student std = studList[0];原创 2021-06-17 11:42:41 · 176 阅读 · 0 评论 -
entity framework db-first demo
代码来自下面链接,有时候找个知识点会方便些。只放了demo部分,context entity都没放git EF6-DBFirst-Demohttps://github.com/entityframeworktutorial/EF6-DBFirst-Demousing System;using System.Collections.Generic;using System.Data.Entity;using System.Data.Entity.Infrastructure;using Sys原创 2021-06-17 09:43:14 · 118 阅读 · 0 评论 -
entity framework persist
持久化场景1.在线2.离线1.在线在实体的生命期中,会追踪所有实体的状态,适合在本机或局域网中的场景。优点:访问要快,dbcontex追踪所有实体的状态,在entities发生变化时,dbcontext会给它设置一个适当的状态。这个也没有试出来。缺点:dbcontext一直连接,占用资源多2.离线不同的dbcontext会检查一遍数据,并保存entity信息到db中,检索完保存完这个dbcontext就可以销毁掉。这个模式复杂,因为没有跟踪它的状态,不知道啥时候改了,在SaveChange原创 2021-06-16 17:56:06 · 87 阅读 · 0 评论 -
entity framework development approach
开发模式1 db firt2 code first3 model first1 db firt表存在先定义好表,再用vs中的edm向导生成dbcontext、entity classef6对此模式支持比较好,ef6对此支持有限2 code first表不存在先定义好dbcontext、entity class ,使用数据迁移命令生成数据库及表3 model first用vs中的设计工具,设计好数据模型和层次关系,然后再去生成entity class 、dbccontext class,原创 2021-06-16 17:44:39 · 130 阅读 · 0 评论 -
entity framework dbcontext
dbcontext class 用来crud数据库,也用来配置实体类,关系映射,缓存,事务,变化追踪等using System.Data.Entity;public class SchoolContext : DbContext{ public SchoolContext() { } // Entities public DbSet<Student> Students { get; set; } public DbSet&原创 2021-06-16 05:56:14 · 340 阅读 · 0 评论 -
entity framework architecture
概念模型 映射 存储模型。原创 2021-06-16 05:43:57 · 106 阅读 · 0 评论 -
entity framework query save
图片来自:https://www.entityframeworktutorial.net/basics/how-entity-framework-works.aspx原创 2021-06-16 05:41:02 · 87 阅读 · 0 评论 -
entity framework workflow
图片来自:https://www.entityframeworktutorial.net/原创 2021-06-16 05:35:35 · 207 阅读 · 0 评论 -
entity framework 学习目录
英文版网址https://www.entityframeworktutorial.net/原创 2021-06-16 05:32:46 · 286 阅读 · 0 评论 -
entity framework fluent api2
public class MyDbContext:DbContext{ protected override void OnModelCreating(DbModelBuilder modelBuilder) { //write fluent api fluetapi中的优先级高于数据注释属性的优先级 modelBuilder.HasDefaultSchema("mydb"); modelBuilder.Entity<Stu>().ToTable("Student"); }原创 2021-06-15 16:15:12 · 124 阅读 · 0 评论 -
entity framework db initialization strategy
1、CreateDatabaseifNotExists 运行时创建数据库,再次运行不创建,如果模型改变会报错,需要迁移2、DropCreatedatabaseIfModelChanges 如果领域类发生变化,则删除并创建新的数据库3、DropCreatedaseAlways 一直删除并创建数据库4、Custom Db Initialize 自定义初始化器下面再介绍...原创 2021-06-15 15:58:35 · 110 阅读 · 0 评论 -
entity framework unable convert mysql date/time value to System.DataTime
ef unable convert mysql date/time value to System.DataTime某列列的类型timestamp 值为 “0000-00-00 00:00:00”1 将“0000-00-00 00:00:00”转换为"0001-1-1 00:00:00" 或设置为null 试了下也可以2 App.Config Web.ConfigConnString 添加 Convert Zero Datetime=TrueC# System.DateTime有最大值"9999原创 2021-06-11 08:32:42 · 164 阅读 · 0 评论 -
entify framework fluent api1
public class StuContext:DbContext { public StuContext() : base("name=MyContext") { Database.Log = Console.WriteLine; } public DbSet<Student> Students { get; set; } public DbSet<StudentAddres.原创 2021-05-20 13:56:12 · 142 阅读 · 0 评论 -
entity framework track entitystate
using(var db = new MyDbContext()){ //db.ChangeTracker; var entries = db.ChangeTracker.Entries(); foreach(var e in entries) { Console.WriteLine(e.Entity.GetType().FullName); Console.WriteLine(e.State); }}原创 2021-05-20 11:26:47 · 167 阅读 · 0 评论 -
entity framework async query save
//异步查询public static async Task<ClassInfo> GetClassInfo(){ ClassInfo c = null; using(var db = new MyDbContext()) { c = await(db.ClassInfos.Where(x=>x.id =1).FirstOrDefaultAsync<ClassInfo>()); } return c;}//异步保存pulic static asy原创 2021-05-20 11:22:13 · 109 阅读 · 0 评论 -
entify framework sqlquery
//用SqlQueryvar args = new Dbparameter[]{new MySqlParameter(){ParameterName="columnname",Value="12345"}};var res = db.AnyDbSetName.SqlQuery("select col..... from tablename where columnname=@columnname",args);var args = new DbParameter[] { new MySqlPar.原创 2021-05-20 09:54:45 · 247 阅读 · 0 评论 -
entify framework entity relationship
参考一对一一对多多对多1.1对1 一个学生有0或1个地址public class Student{ public Student() { this.Courses = new HashSet<Course>(); } public int StudentID{get;set;} public string StudentName{get;set;} public Nullable<int> StandardId{get;set;} public byt转载 2021-05-20 09:14:06 · 145 阅读 · 0 评论 -
entify framework transaction
记录一下,好忘using (DbContextTransaction trans = db.Database.BeginTransaction()) { //使用一个现有的事务,多个修改可以一起提交 //db.Database.UseTransaction(trans); try { if (item != null && base.Confirm()) { //other if (oth原创 2021-05-19 16:29:00 · 106 阅读 · 0 评论 -
entity framework EntityType “ModelType” 未定义键,请为该EntityType定义键
EF配置MysqlEntityType “ModelType” 未定义键,请为该EntityType定义键缺个主键的定义[Key]public int ID{get;set;}原创 2021-05-18 17:11:37 · 470 阅读 · 0 评论 -
entity framework sql interceptor
1.记录sqlpublic class MyDbContext:DbContext{ public MyDbContext():base("name=MyContext") { //可自定义委托 Database.Log=Console.WriteLine; //或者下面的 DbInterception.Add(new MyDbCommandInterceptor()); }}2.记录执行 步骤命令public class MyCommandIntercepter : ID原创 2021-05-14 09:27:56 · 173 阅读 · 0 评论 -
entity framework sum System.InvalidOperationException
ef中sum()异常到值类型System.Double的强制转换失败,因为具体化值为nullpublic class Model{public double Money{get;set;}}因为从db中取出的值为nulldb.ModelSets.Where(x=>x.id==111).Sum(z=>(double?)z.Money);另外异常:System.InvalidOperationException:可为空的对象必须具有一个值因为:实例化对象时有值为空,需要做判断设置原创 2021-05-13 16:42:03 · 321 阅读 · 0 评论 -
entify framework MySql Unknown column ‘Extent1.Discriminator‘ in ‘field list‘
entity framework & mysql由于数据库没有实体对应的列或者是映射错误要映射好相应的列名,如果是继承则加上[NotMapped][Table("DbTableName")]public class BaseClass{ [Display(Name="编号",AutoGenerateField=true)] public int Id{get;set}}//与上面用同一个表 只是要显示其它的自定义信息public class InheritClass:BaseCl原创 2021-05-13 11:34:40 · 414 阅读 · 0 评论