随笔分类 - ORM

摘要:EF Core使用Linq进行数据查询。 基本查询 微软提供了一百多个示例来演示查询,地址: "https://code.msdn.microsoft.com/101 LINQ Samples 3fb9811b" 我们可以通过下面的代码进行简单的查询: 加载关联数据 EF Core有三种常见模型来加 阅读全文
posted @ 2019-07-15 00:37 拓荒者-NET 阅读(834) 评论(0) 推荐(0) 编辑
摘要:EF Core通过ChangeTracker跟踪需要写入数据库的更改,当需要保存数据时,调用DbContext的SaveChanges方法完成保存。 基本的添加、更新、删除操作示例如下: 关联数据 在EF Core中,除了独立的模型外,还有与模型关联的数据,这部分数据通过独立模型添加到模型中,在Sa 阅读全文
posted @ 2019-07-14 16:46 拓荒者-NET 阅读(530) 评论(0) 推荐(0) 编辑
摘要:使用EF Core的第一步是创建数据模型,模型建的好,下班走的早。EF Core本身已经设置了一系列约定来帮我们快速的创建模型,例如表名、主键字段等,毕竟约定大于配置嘛。如果你想改变默认值,很简单,EF Core提供了Fluent API或Data Annotations两种方式允许我们定制数据模型 阅读全文
posted @ 2019-07-14 00:12 拓荒者-NET 阅读(610) 评论(0) 推荐(1) 编辑
摘要:数据库连接字符串 在 ASP.NET Core 添加配置片段: 然后,配置对应的DbContext: 日志记录 EF Core 默认会与 ASP.NET Core的日志提供程序一起工作,只需要使用 或`AddDbContextPool`添加服务即可。 除此之外,还可以手工添加日志记录。 首先,创建L 阅读全文
posted @ 2019-07-07 00:47 拓荒者-NET 阅读(801) 评论(1) 推荐(1) 编辑
摘要:修改ParametersHelper类,添加ExpandoObject的类型判断吧,修改后的代码如下:// PetaPoco - A Tiny ORMish thing for your POCO's.// Copyright © 2011-2012 Topten Software. All Rights Reserved. using System;using System.Collections.Generic;using System.Text.RegularExpressions;using System.Text;namespace PetaPoco.Interna 阅读全文
posted @ 2013-05-08 11:05 拓荒者-NET 阅读(1662) 评论(6) 推荐(1) 编辑
摘要:static public object ChangeType(object value, Type type) { if (value == null && type.IsGenericType) return Activator.CreateInstance(type); if (value == null) return null; if (type == value.GetType()) return value; if (type.IsEnum) ... 阅读全文
posted @ 2012-07-26 14:38 拓荒者-NET 阅读(13542) 评论(3) 推荐(6) 编辑
摘要:Brad为我们提供了T4模板,因为公司一直在使用CodeSmith,故为其写了一个CodeSmith的模板,代码如下:<%-- Name:EntityTemplatesAuthor:Qi Fei Description:Generate a entity file in C#--%><%@ CodeTemplate Language="C#" TargetLanguage="Text" Src="" Inherits="" Debug="False" Description=& 阅读全文
posted @ 2012-06-20 16:42 拓荒者-NET 阅读(2333) 评论(0) 推荐(1) 编辑
摘要:因为公司框架中的很多地方用到DataTable,直接将DataTable作为数据源绑定到DataGridView,所以为PetaPoco添加了两个方法,一个是用以填充单个DataTable,一个是用以多结果集时填充DataSet。 #region operation Fill /// <summary> /// 填充一个DataSet /// </summary> /// <param name="ds">引用的DataSet</param> /// <param name="sql">sql语 阅读全文
posted @ 2012-06-20 16:39 拓荒者-NET 阅读(2805) 评论(1) 推荐(2) 编辑
摘要:PetaPoco的映射需要继承IMapper接口,该接口提供了四个方法:TableInfo GetTableInfo(Type pocoType);ColumnInfo GetColumnInfo(PropertyInfo pocoProperty);Func<object, object> GetFromDbConverter(PropertyInfo TargetProperty, Type SourceType);Func<object, object> GetToDbConverter(PropertyInfo SourceProperty);Brad提供了一个 阅读全文
posted @ 2012-06-20 16:30 拓荒者-NET 阅读(2734) 评论(0) 推荐(0) 编辑
摘要:在PetaPoco中,Brad并没有定义太多Attribute来修饰Models或Fields。这些为数不多的几个Attribute如下:ColumnAttributeExplicitColumnsAttributeIgnoreAttributePrimaryKeyAttributeResultColumnAttributeTableNameAttributeExplicitColumnsAttribute 和 ColumnAttribute使用ExplicitColumnsAttribute修饰的类必须为每一个属性必须使用ColumnAttribute来修饰。例如: [Explicit... 阅读全文
posted @ 2012-06-19 16:58 拓荒者-NET 阅读(3970) 评论(0) 推荐(0) 编辑
摘要:PetaPoco是一款适用于.Net 和Mono的微小、快速、单文件的微型ORM。PetaPoco有以下特色:微小,没有依赖项……单个的C#文件可以方便的添加到任何项目中。工作于严格的没有装饰的Poco类,和几乎全部加了特性的Poco类Insert/Delete/Update/Save and Is... 阅读全文
posted @ 2012-06-04 16:52 拓荒者-NET 阅读(34538) 评论(8) 推荐(33) 编辑
摘要:对于一个ORM框架,支持事务操作是必须的。EF Code-Frist本身就是支持事务的。我们的每一次SaveChanges就是一个事务操作,只需要在所有更改都完成后,调用这个方法就可以了。如果你不愿意,网上还有人给出了手动的开启事务的代码(我没有测试过):DbConnection con = ((IObjectContextAdapter)ctx).ObjectContext.Connection;con.Open();using (var tran = con.BeginTransaction()){// 这里才是事务中的代码tran.Commit();}con.Close(); 以上都是针 阅读全文
posted @ 2012-05-23 16:27 拓荒者-NET 阅读(6421) 评论(0) 推荐(2) 编辑
摘要:网上很多的教程都是跟MVC3绑在一起来讲解的,如果我们抛开MVC3,该如何使用呢?首先新建一个控制台应用程序,我们把它命名为:EFCodeFirst-Books第二步,添加EntityFramework的引用。不要说你还不回使用NuGet,如果真的不会就去问度娘。在NuGet 控制台输入Install-Package EntityFramework,NuGet会为我们引用最新发布的EF版本,目前的版本是4.3。第三步,添加实体类。我新建了一个Models文件夹,在里面添加了Book类,类的定义如下:using System;using System.Collections.Generic;us 阅读全文
posted @ 2012-05-23 11:02 拓荒者-NET 阅读(2780) 评论(0) 推荐(0) 编辑
摘要:CodeFirst提供了一种先从代码开始工作,并根据代码直接生成数据库的工作方式。Entity Framework 4.1在你的实体不派生自任何基类、不添加任何特性的时候正常的附加数据库。另外呢,实体的属性也可以添加一些标签,但这些标签不是必须的。下面是一个简单的示例:publicclass Order { publicint OrderID { get; set; } publicstring OrderTitle { get; set; } publicstring CustomerName { get; set; } public DateTime TransactionDate {.. 阅读全文
posted @ 2011-06-26 15:27 拓荒者-NET 阅读(10068) 评论(0) 推荐(13) 编辑