あまみや ゆうこ » VNEXT

CodeComb.AspNet.Upload 拖拽或剪贴板粘贴图片

灵感源于GitHub的Issue,可以拖拽图片进编辑框,或直接Ctrl+V粘贴图片,这样一来非常方便,因此我尝试了实现这种功能。

项目地址:https://github.com/CodeComb/CodeComb.AspNet.Upload

步骤一:在project.json引用CodeComb.AspNet.Upload

在project.json中的dependencies节添加CodeComb.AspNet.Upload的引用,同时需要配合EntityFramework使用,因为图片会存储到数据库中。

步骤二:定义数据库上下文类

using CodeComb.AspNet.Upload.Models;
using Microsoft.Data.Entity;

namespace CodeComb.AspNet.Upload.Sample.Models
{

更多内容 »

Published on 1/21/2016 9:05:41 PM

Entity Framework 7 - (七)连接其他类型的数据库

在接触过了Entity Framework for SQLite后,我们已经大致熟悉了Entity Framework 7的使用方法,接下来将介绍Entity Framework 7连接其他类型数据库的方法。

Microsoft SQL Server

在project.json中dependencies节添加:

"EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final"

在构建ServiceCollection时.AddSqlServer(),在AddDbContext时UseSqlServer,并相应的填写SQL Server的连接字符串。

PostgreSQL

在project.json中dependencies节添加:

"EntityFramework7.Npgsql ": "3.1.0-rc1-3"

更多内容 »

Published on 1/10/2016 4:29:21 PM

Entity Framework 7 - (六)迁移

Entity Framework 7 强制使用Code First模式,于是最大的困扰就是数据变化引起数据库的删除再新建,这样会造成数据丢失,于是在本篇文章中将介绍Entity Framework 7的迁移功能。

我们在Entity Framework 7系列教程第五篇的基础上,进行迁移的实验。

首先,在项目的project.json中添加EntityFramework.Commands的引用:

  "dependencies": {
    "EntityFramework.Sqlite": "7.0.0-rc1-final",
    "EntityFramework.Commands": "7.0.0-rc1-final"
  }

继续在project.json中找到commands节,添加EntityFramework.Commands:

undefined

更多内容 »

Published on 1/10/2016 1:22:46 PM

Entity Framework 7 - (五)Eager Load

在以往的Entity Framework版本中,我们使用的模式是Lazy Load,延迟加载的特性,也有的称为惰性加载,可以最大程度避免数据库的开销,并做到按需获取,提升了性能。系统在模型初始化的时候会创建数据库操作对象,但是这个时候并不会马上进行数据库连接,而是会在第一次实际查询的时候才会进行连接。对于有些查询,还可以采用延迟加载,在执行查询操作的时候并不会立刻进行查询,而是等到需要使用查询返回数据的时候才进行查询。该特性对于查询大量数据的时候非常有用。

然而Lazy Load并不能在所有的场景中提升数据库的开销,比如在下面的关系中,我们欲按照时间降序输出研究内容、作者姓名、时间,而Lazy Load将会多次访问数据库,获取作者的姓名,而Eager Load解决了这类问题。在你执行查询前,先行使用.Include()把后续需要的外部记录一同载入。

这两种加载方式各有千秋,但是Entity Framework 7中强制我们使用Eager Load方式。

undefined

首先我们建模:

Person.cs

namespace EntityFrameworkSample.Models
{
    public class Person

更多内容 »

Published on 1/10/2016 12:56:10 PM

Entity Framework 7 - (四)外键(多对多)

关系数据库中两个表之间的一种关系, 该关系中第一个表中的一个行可以与第二个表中的一个或多个行相关。第二个表中的一个行也可以与第一个表中的一个或多个行相关。

我们尝试设定工人与企业的关系,一个工人可以找一个全职工作和多个兼职工作,于是产生如下多对多关系:

undefined

首先我们进行建模:

Worker.cs:

using System.Collections.Generic;

namespace EntityFrameworkSample.Models
{
    public class Worker

更多内容 »

Published on 1/10/2016 12:19:42 PM